avro-0.5.2.1: test/Avro/Encoding/ContainerSpec.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
module Avro.Encoding.ContainerSpec
where
import Data.Aeson (eitherDecode, encode)
import Data.Avro.Codec (nullCodec)
import Data.Avro.Schema.Schema (Schema)
import Avro.TestUtils (roundtripContainerGen)
import HaskellWorks.Hspec.Hedgehog
import Hedgehog
import qualified Hedgehog.Gen as Gen
import Hedgehog.Range (Range)
import qualified Hedgehog.Range as Range
import Test.Hspec
import qualified Avro.Data.Endpoint as Endpoint
import qualified Avro.Data.Unions as Unions
{- HLINT ignore "Reduce duplication" -}
{- HLINT ignore "Redundant do" -}
spec :: Spec
spec = describe "Avro.Encoding.ContainerSpec" $ do
describe "Roundtripping" $ do
it "should roundtrip schema" $ require $ withTests 1 $ property $ do
tripping Endpoint.schema'Endpoint encode eitherDecode
tripping Unions.schema'Unions encode eitherDecode
it "should roundtrip Endpoint" $ require $ property $ roundtripContainerGen Endpoint.schema'Endpoint Endpoint.endpointGen
it "should roundtrip Unions" $ require $ property $ roundtripContainerGen Unions.schema'Unions Unions.unionsGen