hw-conduit-0.0.0.6: test/HaskellWorks/Data/Conduit/Json/BlankSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module HaskellWorks.Data.Conduit.Json.BlankSpec (spec) where
import qualified Data.ByteString as BS
import HaskellWorks.Data.Conduit.Json.Blank
import HaskellWorks.Data.Conduit.List
import Test.Hspec
{-# ANN module ("HLint: ignore Redundant do" :: String) #-}
whenBlankedJsonShouldBe :: BS.ByteString -> BS.ByteString -> Spec
whenBlankedJsonShouldBe original expected = do
it (show original ++ " when blanked json should be " ++ show expected) $ do
BS.concat (runListConduit blankJson [original]) `shouldBe` expected
spec :: Spec
spec = describe "HaskellWorks.Data.Conduit.Json.BlankSpec" $ do
describe "Can blank json" $ do
"\"\"" `whenBlankedJsonShouldBe` "()"
"\"\\\\\"" `whenBlankedJsonShouldBe` "( )"
"\"\\\\\\\"" `whenBlankedJsonShouldBe` "( "
"\" \\\\\\\"" `whenBlankedJsonShouldBe` "( "
"\" \\n\\\\\"" `whenBlankedJsonShouldBe` "( )"
"" `whenBlankedJsonShouldBe` ""
"\"\"" `whenBlankedJsonShouldBe` "()"
"\" \"" `whenBlankedJsonShouldBe` "( )"
"\" a \"" `whenBlankedJsonShouldBe` "( )"
" \"a \" x" `whenBlankedJsonShouldBe` " ( ) x"
" \"a\"b\"c\"d" `whenBlankedJsonShouldBe` " ( )b( )d"
"" `whenBlankedJsonShouldBe` ""
"1" `whenBlankedJsonShouldBe` "1"
"11" `whenBlankedJsonShouldBe` "10"
"00" `whenBlankedJsonShouldBe` "10"
"00" `whenBlankedJsonShouldBe` "10"
"-0.12e+34" `whenBlankedJsonShouldBe` "100000000"
"10.12E-34 " `whenBlankedJsonShouldBe` "100000000 "
"10.12E-34 12" `whenBlankedJsonShouldBe` "100000000 10"
" 10.12E-34 -1" `whenBlankedJsonShouldBe` " 100000000 10"
"" `whenBlankedJsonShouldBe` ""
"a" `whenBlankedJsonShouldBe` "a"
"z" `whenBlankedJsonShouldBe` "z"
" Aaa " `whenBlankedJsonShouldBe` " A__ "
" Za def " `whenBlankedJsonShouldBe` " Z_ d__ "
"" `whenBlankedJsonShouldBe` ""
" { \"ff\": 1.0, [\"\", true], null}" `whenBlankedJsonShouldBe` " { ( ): 100, [(), t___], n___}"