{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Avro.Codec.MaybeSpec (spec) where import Avro.TestUtils import HaskellWorks.Hspec.Hedgehog import Hedgehog import qualified Hedgehog.Gen as Gen import Test.Hspec import Data.Avro.Deriving (deriveAvroFromByteString, r) import qualified Data.Avro.Schema.Schema as Schema {-# ANN module ("HLint: ignore Redundant do" :: String) #-} deriveAvroFromByteString [r| { "type": "record", "name": "OnlyMaybeBool", "namespace": "test.contract", "fields": [ {"name": "onlyMaybeBoolValue", "type": ["null", "boolean"]} ] } |] spec :: Spec spec = describe "Avro.Codec.MaybeSpec" $ do it "should encode then decode Maybe Bool correctly" $ require $ property $ do roundtripGen schema'OnlyMaybeBool (OnlyMaybeBool <$> Gen.maybe Gen.bool)