aeson-schemas-1.3.5: test/Tests/Object.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
module Tests.Object where
import Data.Aeson (Value (..))
import Data.Aeson.QQ (aesonQQ)
import Test.Tasty
import Test.Tasty.HUnit
import Data.Aeson.Schema (Object, schema, toMap)
import qualified Data.Aeson.Schema.Utils.Compat as Compat
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
@?= Compat.fromList
[ ("a", Bool True)
]
]