eternity-0.1: test/Main.hs
module Main where
import Prelude
import Test.QuickCheck.Instances
import Test.Tasty
import Test.Tasty.Runners
import Test.Tasty.HUnit
import Test.Tasty.QuickCheck
import System.Directory
import qualified Eternity.Potoki.Produce as O
import qualified Eternity.Potoki.Consume as P
import qualified Potoki.Produce as F
import qualified Potoki.IO as G
import qualified Potoki.Consume as H
main =
defaultMain $
testGroup "Store and read events" $
[
testProperty "Store and read events" $ \ (events :: [Int]) ->
unsafePerformIO $ do
removePathForcibly directory
createDirectoryIfMissing True directory
writeEvents events
readEventsResult <- readEvents
return (Right (Right events) === readEventsResult)
]
where
directory =
"dist/test-events"
writeEvents events =
G.produceAndConsume (F.list events) (P.writeToDir directory)
readEvents =
G.produceAndConsume
(O.readFromDir directory)
(right' (right' H.list))