json-api-0.1.0.0: test/Network/JSONApi/MetaSpec.hs
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