sbp-0.52.0: test/Test/SwiftNav/SBP/Encoding.hs
module Test.SwiftNav.SBP.Encoding
( tests
) where
import BasicPrelude
import Data.ByteString as BS
import qualified Data.Aeson as A
import SwiftNav.SBP.Encoding ()
import Test.QuickCheck
import Test.Tasty
import Test.Tasty.HUnit
import Test.Tasty.QuickCheck as QC
instance Arbitrary BS.ByteString where
arbitrary = BS.pack <$> arbitrary
shrink xs = BS.pack <$> shrink (BS.unpack xs)
instance CoArbitrary BS.ByteString where
coarbitrary = coarbitrary . BS.unpack
testParse :: TestTree
testParse =
testGroup "Empty Test"
[ testCase "Empty data" $ do
(A.decode . A.encode $ ("dddd" :: BS.ByteString)) @?= Just ["dddd" :: String]
]
testRoundtrip :: TestTree
testRoundtrip = QC.testProperty "Aeson" prop
where prop ws = (A.decode . A.encode $ (ws :: BS.ByteString)) === Just [ws]
tests :: TestTree
tests = testGroup "Roundtrip JSON serialization"
[ testRoundtrip
, testParse
]