morley-0.1.0.0: test/Test/Tezos/Address.hs
-- | Tests for 'Tezos.Address'.
module Test.Tezos.Address
( spec
) where
import Test.Hspec (Spec, describe, it, shouldSatisfy)
import Tezos.Address (Address, formatAddress, parseAddress)
import Test.Util.QuickCheck (ShowThroughBuild(..), aesonRoundtrip, roundtripSpecSTB)
spec :: Spec
spec = describe "Tezos.Address" $ do
describe "parseAddress" $ do
it "Successfully parses valid sample data" $
forM_ sampleAddresses (\a -> bimap STB STB (parseAddress a) `shouldSatisfy` isRight)
it "Fails to parse invalid data" $ do
forM_ invalidAddresses (\a -> bimap STB STB (parseAddress a) `shouldSatisfy` isLeft)
describe "Formatting" $ do
describe "Roundtrip (parse . format ≡ pure)" $ do
roundtripSpecSTB formatAddress parseAddress
describe "Roundtrip (JSON encoding/deconding)" $ do
aesonRoundtrip @Address
where
sampleAddresses =
[ "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUzU"
, "KT1G4hcQj2STN86GwC1XAkPtwPPhgfPKuE45"
]
invalidAddresses =
[ ""
, "1"
, "tz1faswCTDciRzE4oJ9jn2Vm2dvjeyA9fUZU"
, "KT1G4hcQj2STN86GwC1XAkPtwPPhgfPKuE46"
]