nonExistentKey :: TestTree
nonExistentKey = testGroup "nonExistentKey"
  [ testCase "get" $
      val .? "{b}" @?= (Nothing :: Maybe Int)
  
  , testCase "set" $
      build "{a}" (d "{}") Null `jt` "{\"a\":null}"

  , testCase "setDeep" $
      "{a:[{b}]}" .% Null `jt` "{\"a\":[{\"b\":null}]}"

  , testCase "setDeepArray" $
      "[{a}]" .% [one,two] `jt` "[{\"a\":1},{\"a\":2}]"

  , testCase "setDeepMany" $
      let v = (1,[(10,11)]) :: (Int,[(Int,Int)])
       in "{my,complex:[{data,structure}]}" .% v
            @?= d "{\"my\":1,\"complex\":[{\"data\":10,\"structure\":11}]}" 
  ]
  where val = d "{\"a\":1}"
nonExistentKey :: TestTree
nonExistentKey = testGroup "nonExistentKey"
  [ testCase "get" $
      val .? "{b}" @?= (Nothing :: Maybe Int)
  
  , testCase "set" $
      build "{a}" (d "{}") Null `jt` "{\"a\":null}"

  , testCase "setDeep" $
      "{a:[{b}]}" .% Null `jt` "{\"a\":[{\"b\":null}]}"

  , testCase "setDeepArray" $
      "[{a}]" .% [one,two] `jt` "[{\"a\":1},{\"a\":2}]"

  , testCase "setDeepMany" $
      let v = (1,[(10,11)]) :: (Int,[(Int,Int)])
       in "{my,complex:[{data,structure}]}" .% v
            @?= d "{\"my\":1,\"complex\":[{\"data\":10,\"structure\":11}]}" 
  ]
  where val = d "{\"a\":1}"
nonExistentKey = testGroup "nonExistentKey"
  [ testCase "get" $
      val .? "{b}" @?= (Nothing :: Maybe Int)
  
  , testCase "set" $
      build "{a}" (d "{}") Null `jt` "{\"a\":null}"

  , testCase "setDeep" $
      "{a:[{b}]}" .% Null `jt` "{\"a\":[{\"b\":null}]}"

  , testCase "setDeepArray" $
      "[{a}]" .% [one,two] `jt` "[{\"a\":1},{\"a\":2}]"

  , testCase "setDeepMany" $
      let v = (1,[(10,11)]) :: (Int,[(Int,Int)])
       in "{my,complex:[{data,structure}]}" .% v
            @?= d "{\"my\":1,\"complex\":[{\"data\":10,\"structure\":11}]}" 
  ]
  where val = d "{\"a\":1}"