@@ -5,6 +5,7 @@ import Data.Aeson (eitherDecode)
55import Data.Aeson.Encode
66import Data.Aeson.Parser (value)
77import Data.Aeson.Types
8+import Data.ByteString.Builder (toLazyByteString)
89import Data.Char (toUpper)
910import Test.Framework (Test, defaultMain, testGroup)
1011import Test.Framework.Providers.QuickCheck2 (testProperty)
@@ -76,6 +77,11 @@ modifyFailureProp orig added =
7677 result :: Result ()
7778 result = parse parser ()
7879
80+sameAs :: (a -> Value) -> (a -> Encoding) -> a -> Property
81+sameAs toVal toEnc v =
82+ toLazyByteString (encodeToBuilder (toVal v)) ===
83+ toLazyByteString (fromEncoding (toEnc v))
84+
7985main :: IO ()
8086main = do
8187 comparisonTest <- encoderComparisonTests
@@ -185,6 +191,10 @@ tests = [
185191 ]
186192 ]
187193 ]
194+ , testGroup "toEncoding" [
195+ testProperty "NullaryString" $
196+ thNullaryToJSONString `sameAs` thNullaryToEncodingString
197+ ]
188198 ]
189199 ]
190200