MiniJavaCompiler/Test/TestParser.hs

28 lines
1.1 KiB
Haskell
Raw Normal View History

2024-05-02 20:33:35 +00:00
module TestParser(tests) where
import Test.HUnit
import Parser.Lexer
import Parser.JavaParser
2024-05-03 13:47:41 +00:00
import Ast
2024-05-02 20:33:35 +00:00
2024-05-03 13:47:41 +00:00
testSingleEmptyClass = TestCase $
assertEqual "expect single empty class hello" [Class "Hello" [] []] $
parse [CLASS, IDENTIFIER "Hello", LBRACKET, RBRACKET]
testTwoEmptyClasses = TestCase $
assertEqual "expect two empty classes" [Class "Class1" [] [], Class "Class2" [] []] $
parse [CLASS,IDENTIFIER "Class1",LBRACKET,RBRACKET,CLASS,IDENTIFIER "Class2",LBRACKET,RBRACKET]
2024-05-03 15:47:59 +00:00
testBooleanField = TestCase $
assertEqual "expect class with boolean field" [Class "WithBool" [] [VariableDeclaration "boolean" "value" Nothing]] $
parse [CLASS,IDENTIFIER "WithBool",LBRACKET,BOOLEAN,IDENTIFIER "value",SEMICOLON,RBRACKET]
testIntField = TestCase $
assertEqual "expect class with int field" [Class "WithInt" [] [VariableDeclaration "int" "value" Nothing]] $
parse [CLASS,IDENTIFIER "WithInt",LBRACKET,INT,IDENTIFIER "value",SEMICOLON,RBRACKET]
2024-05-02 20:33:35 +00:00
tests = TestList [
2024-05-03 13:47:41 +00:00
testSingleEmptyClass,
2024-05-03 15:47:59 +00:00
testTwoEmptyClasses,
testBooleanField,
testIntField
2024-05-02 20:33:35 +00:00
]