HJVM-0.1: test/Language/Java/JVM/SignatureParserTest.hs
module Language.Java.JVM.SignatureParserTest where
import Language.Java.JVM.SignatureParser
import Test.HUnit
parse :: String -> IO (Maybe JSignature)
parse sig=do
let ep=parseSignature sig
case ep of
Left err->do
assertFailure $ show err
return Nothing
Right td->return $ Just td
signatureParserTests :: Test
signatureParserTests = TestLabel "signatureParserTests" (TestCase (do
Just j0<-parse "()V"
assertEqual "noargs, no ret" (JSignature [] Nothing) j0
Just j1<-parse "(Ljava/lang/Object;)I"
assertEqual "noargs, no ret" (JSignature ["JObj"] (Just "JInt")) j1
Just j2<-parse "([CII)Ljava/lang/String;"
assertEqual "noargs, no ret" (JSignature ["JObj","JInt","JInt"] (Just "JObj")) j2
))