aboutsummaryrefslogtreecommitdiff
path: root/bootstrap/unit_test
diff options
context:
space:
mode:
Diffstat (limited to 'bootstrap/unit_test')
-rw-r--r--bootstrap/unit_test/SourceConstructionTest.hs35
1 files changed, 32 insertions, 3 deletions
diff --git a/bootstrap/unit_test/SourceConstructionTest.hs b/bootstrap/unit_test/SourceConstructionTest.hs
index a3fdf68..9429975 100644
--- a/bootstrap/unit_test/SourceConstructionTest.hs
+++ b/bootstrap/unit_test/SourceConstructionTest.hs
@@ -3,9 +3,38 @@ module SourceConstructionTest
)
where
-import Hedge ( Test
- , describe
+import BuildModel ( RawSource(..)
+ , Source(..)
+ , processRawSource
+ )
+import Hedge ( Result
+ , Test
+ , assertThat
+ , givenInput
+ , then'
+ , whenTransformed
)
test :: IO (Test ())
-test = return $ describe "something" []
+test = return $ givenInput
+ "a program"
+ exampleProgram
+ [ whenTransformed "processed to a source"
+ processRawSource
+ [then' "it is a Program" checkIsProgram]
+ ]
+
+exampleProgram :: RawSource
+exampleProgram = RawSource
+ "some/file/somewhere.f90"
+ $ unlines
+ [ "program some_program"
+ , " implicit none"
+ , " print *, \"Hello, World!\""
+ , "end program"
+ ]
+
+checkIsProgram :: Source -> Result
+checkIsProgram s = assertThat $ case s of
+ Program -> True
+ _ -> False