packages feed

aeson-picker-0.1.0.0: test/Spec.hs

{-# LANGUAGE OverloadedStrings #-}

import           Data.Aeson.Picker
import           Data.Text         (Text, unpack)
import           Test.Hspec

exampleJSON :: Text
exampleJSON = "{\"object-like\":{\"string-like\":\"this is string\", \"int-like\": 42}, \"float-like\":1.2}"

main :: IO ()
main = hspec $ do
    describe ("With JSON " ++ unpack exampleJSON) $ do
      it "|-- [\"float-like\"]" $
           (exampleJSON |-- ["float-like"]) `shouldBe` (1.2 :: Float)
      it "|-- [\"object-like\", \"string-like\"]" $
           (exampleJSON |-- ["object-like", "string-like"]) `shouldBe` ("this is string" :: String)
      it "|-- [\"object-like\", \"int-like\"]" $
           (exampleJSON |-- ["object-like", "int-like"]) `shouldBe` (42 :: Int)