aeson-schemas-1.3.4: test/Tests/Object.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Tests.Object where
import Data.Aeson (Value (..))
import Data.Aeson.QQ (aesonQQ)
import qualified Data.HashMap.Lazy as HashMap
import Test.Tasty
import Test.Tasty.HUnit
import Data.Aeson.Schema (Object, schema, toMap)
import TestUtils (parseValue)
import qualified Tests.Object.Eq
import qualified Tests.Object.FromJSON
import qualified Tests.Object.Show
import qualified Tests.Object.ToJSON
test :: TestTree
test =
testGroup
"Object"
[ Tests.Object.Show.test
, Tests.Object.Eq.test
, Tests.Object.FromJSON.test
, Tests.Object.ToJSON.test
, testCase "toMap smoketest" $
let o :: Object [schema| { a: Bool } |]
o = parseValue [aesonQQ| { "a": true } |]
in toMap o
@?= HashMap.fromList
[ ("a", Bool True)
]
]