packages feed

linnet-aeson-0.1.0.1: test/EncodeSpec.hs

{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications    #-}

module EncodeSpec
  ( spec
  ) where

import           Data.ByteString           (ByteString)
import           Data.Text                 (Text)
import           EncodeJsonLaws
import           Foo
import           Linnet.Aeson
import           Test.Hspec
import           Test.QuickCheck           (property)
import           Test.QuickCheck.Instances
import           Util

spec :: Spec
spec = do
  checkLaws "Int" $ encodeJsonLaws @Int
  checkLaws "Text" $ encodeJsonLaws @Text
  checkLaws "Bool" $ encodeJsonLaws @Bool
  checkLaws "Foo" $ encodeJsonLaws @Foo
  checkLaws "Maybe Foo" $ encodeJsonLaws @(Maybe Foo)
  checkLaws "[Foo]" $ encodeJsonLaws @[Foo]