packages feed

hexstring-0.9.0: test/Data/HexStringSpec.hs

module Data.HexStringSpec where

import           Data.HexString

import qualified Data.ByteString.Char8 as BS8
import qualified Data.Text             as T

import           Test.Hspec

spec :: Spec
spec = do
  describe "when decoding hex data" $ do
    it "should be able to parse basic hex data" $ do
      (getBinary . decodeByteString) (BS8.pack "ffff") `shouldBe` BS8.pack "\255\255"
      (getBinary . decodeString) "ffff"                `shouldBe` BS8.pack "\255\255"
      (getBinary . decodeText) (T.pack "ffff")         `shouldBe` BS8.pack "\255\255"

    it "should be able to recode basic hex data to different formats" $
      let hex = BS8.pack "ffff"
      in do
        (encodeText . decodeByteString) hex       `shouldBe` T.pack "ffff"
        (encodeString . decodeByteString) hex     `shouldBe` "ffff"
        (encodeByteString . decodeByteString) hex `shouldBe` BS8.pack "ffff"