packages feed

avro-0.3.6.0: test/Avro/THEnumSpec.hs

{-# LANGUAGE DeriveGeneric       #-}
{-# LANGUAGE OverloadedStrings   #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell     #-}
module Avro.THEnumSpec
where

import           Data.Avro
import           Data.Avro.Deriving

import           Test.Hspec

{-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
deriveAvroWithOptions (defaultDeriveOptions { namespaceBehavior = HandleNamespaces }) "test/data/enums.avsc"

spec :: Spec
spec = describe "Avro.THEnumSpec: Schema with enums" $ do
  it "should do roundtrip" $ do
    let msg = Haskell'avro'example'EnumWrapper
              { haskell'avro'example'EnumWrapperId   = 42
              , haskell'avro'example'EnumWrapperName = "Text"
              , haskell'avro'example'EnumWrapperReason = Haskell'avro'example'EnumReasonBecause
              }
    fromAvro (toAvro msg) `shouldBe` pure msg