packages feed

state-codes-0.1.3: test/Data/StateCodesSpec.hs

module Data.StateCodesSpec where

import           Data.Aeson
import           Test.Hspec
import           Test.Hspec.QuickCheck
import           Test.QuickCheck

import           Data.StateCodes

spec :: Spec
spec =
  describe "StateCode" $ do
    prop "fromName . toName" $ forAll arbitraryBoundedEnum $ \code ->
      (fromName . toName) code == (code :: StateCode)

    prop "fromText . toText" $ forAll arbitraryBoundedEnum $ \code ->
      (fromText . toText) code == (code :: StateCode)

    prop "decode . encode" $ forAll arbitraryBoundedEnum $ \code ->
      (decode . encode) code == Just (code :: StateCode)