HCL-1.9: test/Spec/Constructors.hs
module Spec.Constructors (tests) where
import Test.HUnit
import System.Console.HCL
tests = TestLabel "constructors" $ TestList
[ makeReqTests
, reqFailTest
, reqLiftMaybeTests
, reqIOTests
]
makeReqTests = TestLabel "makeReq" $ TestList $ map makeReqTest [ True, False ]
makeReqTest x = TestLabel (show x) $ TestCase $ do
val <- runRequest $ makeReq x
assertEqual "" (Just x) val
reqFailTest = TestLabel "reqFail" $ TestCase $ do
val <- runRequest (reqFail :: Request ())
assertEqual "" Nothing val
reqLiftMaybeTests = TestLabel "reqMaybe" $ TestList $ map reqLiftMaybeTest
[Nothing, Just ()]
reqLiftMaybeTest x = TestLabel (show x) $ TestCase $ do
val <- runRequest $ reqLiftMaybe x
assertEqual "" x val
reqIOTests = TestLabel "reqIO" $ TestList $ map reqIOTest
[ ( "success", return (), Just () )
, ( "failure", fail "", Nothing )
]
reqIOTest (label, x, expect) = TestLabel label $ TestCase $ do
val <- runRequest $ reqIO x
assertEqual "" expect val