moo-nad-0.1.0.1: test/tests.hs
module Main where
import Test.Tasty
import Test.Tasty.HUnit
import Data.IORef
import LogicThatLogs
import Moo
tests :: TestTree
tests =
testGroup
"All"
[
let test = do
loggerRef <- newIORef ""
counterRef <- newIORef 0
let env = EnvIO {
_logger = \_ -> writeIORef loggerRef
, _counter = Counter {
askCounter = readIORef counterRef
, incCounter = \v -> modifyIORef counterRef (+v)
}
}
runReaderT logic env
msg <- readIORef loggerRef
assertEqual "log output" "this is a message" msg
counterVal <- readIORef counterRef
assertEqual "counter output" 1 counterVal
in testCase "run logic" $ test
]
main :: IO ()
main = defaultMain tests