wkt-geom-0.0.1: test/Data/Internal/Wkb/EndianSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module Data.Internal.Wkb.EndianSpec where
import qualified Data.Binary.Get as BinaryGet
import qualified Data.ByteString.Builder as ByteStringBuilder
import qualified Data.ByteString.Lazy as LazyByteString
import qualified GHC.Word as Word
import Test.Hspec (Spec, describe, it, shouldBe)
import qualified Data.Internal.Wkb.Endian as Endian
spec :: Spec
spec =
testGetEndian
testGetEndian :: Spec
testGetEndian =
describe "get endian" $ do
it "Returns BigEndian for 0" $
BinaryGet.runGet Endian.endianType (getByteString 0) `shouldBe` Endian.BigEndian
it "Returns LittleEndian for 1" $
BinaryGet.runGet Endian.endianType (getByteString 1) `shouldBe` Endian.LittleEndian
it "Returns fail for other" $
BinaryGet.runGetOrFail Endian.endianType (getByteString 5) `shouldBe` Left ("", 1, "Invalid EndianType")
getByteString :: Word.Word8 -> LazyByteString.ByteString
getByteString int =
ByteStringBuilder.toLazyByteString $ ByteStringBuilder.word8 int