blob: 75c1ebf5e76aab3e3f35334e79a6cad1c4539e83 (
plain) (
tree)
|
|
{-# LANGUAGE AllowAmbiguousTypes #-}
--------------------------------------------------------------------------------
module Test.Prelude
( module Xanthous.Prelude
, module Test.Tasty
, module Test.Tasty.HUnit
, module Test.Tasty.QuickCheck
, module Test.Tasty.Ingredients.Rerun
, module Test.QuickCheck.Classes
, testBatch
, jsonRoundTrip
) where
--------------------------------------------------------------------------------
import Xanthous.Prelude hiding (assert, elements)
--------------------------------------------------------------------------------
import Test.Tasty
import Test.Tasty.QuickCheck
import Test.Tasty.HUnit
import Test.Tasty.Ingredients.Rerun
import Test.QuickCheck.Classes
import Test.QuickCheck.Checkers (TestBatch, EqProp ((=-=)))
import Test.QuickCheck.Instances.ByteString ()
--------------------------------------------------------------------------------
import qualified Data.Aeson as JSON
import Data.Aeson (ToJSON, FromJSON)
--------------------------------------------------------------------------------
testBatch :: TestBatch -> TestTree
testBatch (name, tests) = testGroup name $ uncurry testProperty <$> tests
jsonRoundTrip
:: forall a. (ToJSON a, FromJSON a, EqProp a, Arbitrary a, Show a) => TestTree
jsonRoundTrip = testProperty "JSON round trip" $ \(x :: a) ->
JSON.decode (JSON.encode x) =-= Just x
|