packages feed

avro-0.3.6.0: test/Avro/SchemaSpec.hs

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

import           Data.Avro
import           Data.Avro.Deriving (makeSchema)
import           Data.Avro.Schema   (overlay, matches)

import           Test.Hspec

{-# ANN module ("HLint: ignore Redundant do"        :: String) #-}

spec :: Spec
spec = describe "Avro.SchemaSpec" $ do
  describe "overlay" $
    it "should support merging multiple schemas" $ do
      let expected   = $(makeSchema "test/data/overlay/expectation.avsc")
          consumer   = $(makeSchema "test/data/overlay/composite.avsc")
          primitives = $(makeSchema "test/data/overlay/primitives.avsc")

      consumer `overlay` primitives `shouldSatisfy` matches expected