module Network.JSONApi.MetaSpec where import qualified Data.Aeson as AE import qualified Data.ByteString.Lazy.Char8 as BS import qualified Data.Map as Map import Data.Maybe (isJust) import Network.JSONApi.Meta import TestHelpers (prettyEncode) import Test.Hspec main :: IO () main = hspec spec spec :: Spec spec = describe "serialization" $ -- is there a compelling reason to test this? -- it "serializes/deserializes primitive values" $ do let intTestData = Meta . Map.fromList $ [ ("numData", 5 :: Int) ] let encIntJson = BS.unpack . prettyEncode $ intTestData let decIntJson = AE.decode (BS.pack encIntJson) :: Maybe (Meta Int) isJust decIntJson `shouldBe` True -- putStrLn (keys encIntJson) -- putStrLn $ show . fromJust $ decIntJson let boolTestData = Meta . Map.fromList $ [ ("boolData", True) ] let encBoolJson = BS.unpack . prettyEncode $ boolTestData let decBoolJson = AE.decode (BS.pack encBoolJson) :: Maybe (Meta Bool) isJust decBoolJson `shouldBe` True -- putStrLn (keys encBoolJson) -- putStrLn $ show . fromJust $ decBoolJson