avro-0.3.0.5: test/Avro/THLogicalTypeSpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TemplateHaskell #-}
module Avro.THLogicalTypeSpec
where
import Control.Lens
import Control.Monad
import qualified Data.Aeson as J
import Data.Aeson.Lens
import qualified Data.ByteString as B
import qualified Data.Char as Char
import Data.Monoid ((<>))
import Data.Text (Text)
import qualified Data.Text as T
import Test.Hspec
import Data.Avro
import Data.Avro.Deriving
import Data.Avro.Schema
deriveAvro "test/data/logical.avsc"
spec :: Spec
spec = describe "Avro.THSpec: Logical Type Schema" $ do
let msgs =
[ Logical 12345
, Logical 67890
]
it "should do roundtrip" $
forM_ msgs $ \msg ->
fromAvro (toAvro msg) `shouldBe` pure msg
it "should do full round trip" $
forM_ msgs $ \msg -> do
let encoded = encode msg
let decoded = decode encoded
decoded `shouldBe` pure msg