packages feed

linnet-aeson-0.1.0.1: test/DecodeSpec.hs

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

module DecodeSpec
  ( spec
  ) where

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

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