tomland-1.3.3.3: test/Test/Toml/Codec/Combinator/Monoid.hs
module Test.Toml.Codec.Combinator.Monoid
( monoidSpec
) where
import Data.Monoid (All (..), Any (..), First (..), Last (..), Product (..), Sum (..))
import Test.Hspec (Spec, describe)
import Test.Toml.Codec.Combinator.Common (codecRoundtrip)
import qualified Hedgehog.Gen as Gen
import qualified Test.Toml.Gen as Gen
import qualified Toml.Codec.Combinator.Monoid as Toml
import qualified Toml.Codec.Combinator.Primitive as Toml
monoidSpec :: Spec
monoidSpec = describe "Combinator.Monoid: Roundtrip tests" $ do
codecRoundtrip "All " Toml.all (All <$> Gen.genBool)
codecRoundtrip "Any " Toml.any (Any <$> Gen.genBool)
codecRoundtrip "Sum Int" (Toml.sum Toml.int) (Sum <$> Gen.genInt)
codecRoundtrip "Product Int" (Toml.product Toml.int) (Product <$> Gen.genInt)
codecRoundtrip "First Int" (Toml.first Toml.int) (First <$> Gen.maybe Gen.genInt)
codecRoundtrip "Last Int" (Toml.last Toml.int) (Last <$> Gen.maybe Gen.genInt)