packages feed

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
        ))