morley-0.4.0: test/Test/Tezos/Address.hs
-- | Tests for 'Tezos.Address'.
module Test.Tezos.Address
( test_Roundtrip
, test_parseAddress
) where
import Test.Hspec (shouldSatisfy)
import Test.Tasty (TestTree, testGroup)
import Test.Tasty.HUnit (testCase)
import Tezos.Address (Address, formatAddress, parseAddress)
import Test.Util.QuickCheck (ShowThroughBuild(..), aesonRoundtrip, roundtripTestSTB)
test_Roundtrip :: [TestTree]
test_Roundtrip =
[ testGroup "parse . format ≡ pure"
[ roundtripTestSTB formatAddress parseAddress ]
, testGroup "JSON encoding/deconding"
[ aesonRoundtrip @Address ]
]
test_parseAddress :: [TestTree]
test_parseAddress =
[ testCase "Successfully parses valid sample data" $
forM_ sampleAddresses (\a -> bimap STB STB (parseAddress a) `shouldSatisfy` isRight)
, testCase "Fails to parse invalid data" $ do
forM_ invalidAddresses (\a -> bimap STB STB (parseAddress a) `shouldSatisfy` isLeft)
]
where
sampleAddresses =
[ "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU"
, "tz1Wit2PqodvPeuRRhdQXmkrtU8e8bRYZecd"
, "tz2EfqCbLmpfv7mNiLcMmhxAwdgHtPTcwR4W"
, "tz2Darj3LyQzekU98ZK8diHvuyn1YYjcHpc6"
, "tz3UoffC7FG7zfpmvmjUmUeAaHvzdcUvAj6r"
, "tz3NExpXn9aPNZPorRE4SdjJ2RGrfbJgMAaV"
, "KT1G4hcQj2STN86GwC1XAkPtwPPhgfPKuE45"
, "KT1QbdJ7M7uAQZwLpvzerUyk7LYkJWDL7eDh"
]
invalidAddresses =
[ ""
, "1"
-- These are slightly modified versions of some valid addresses above.
, "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUZU"
, "tz2darj3LyQzekU98ZK8diHvuyn1YYjcHpc6"
, "tz3UoffC8FG7zfpmvmjUmUeAaHvzdcUvAj6r"
, "KT1G4hcQj2STN86GwC1XAkPtwPPhgfPKuE46"
]