hunit-gui-0.1.2: tests/DescriptionsTests.hs
module DescriptionsTests (tests)
where
import Test.HUnit.Base
import Test.HUnit.Gui.Descriptions
tests :: Test
tests = test $ describeErrorTests ++ describeFailureTests ++ describePathTests
describeErrorTests :: [Test]
describeErrorTests =
[ "describeError when you don't know the path" ~:
"blah blah blah" ~=? describeError "blah blah blah" (State [] undefined)
, "describeError when you do know the path" ~:
"the label (2:11):\nblah blah blah" ~=? describeError "blah blah blah" (State [Label "the label", ListItem 11, ListItem 2] undefined)
]
describeFailureTests :: [Test]
describeFailureTests =
[ "describeFailure when you don't know the path" ~:
"blah blah blah" ~=? describeFailure "blah blah blah" (State [] undefined)
, "describeFailure when you do know the path" ~:
"the label (2:11):\nblah blah blah" ~=? describeFailure "blah blah blah" (State [Label "the label", ListItem 11, ListItem 2] undefined)
]
describePathTests :: [Test]
describePathTests =
[ "describe labelless path" ~: "3:5:1" ~=? (describePath $ map ListItem [1,5,3])
, "describe empty path" ~: "?" ~=? (describePath [])
, "if there's a label in the path, it gets priority" ~:
"apples and pears (3:5:1)" ~=? describePath [ListItem 1, Label "apples and pears", ListItem 5, ListItem 3]
, "multiple labels are joined together" ~:
"apples:pears:bananas (3:5:1)" ~=? describePath [ListItem 1, Label "bananas", ListItem 5, ListItem 3, Label "pears", Label "apples"]
, "labels with ':'s in them are quoted" ~:
"'ratio should be 1:3':apples (5)" ~=? describePath [ListItem 5, Label "apples", Label "ratio should be 1:3"]
, "quoted labels have their apostrophes escaped" ~:
"'grocery\\'s ratio should be 1:3' (5)" ~=? describePath [ListItem 5, Label "grocery's ratio should be 1:3"]
]