packages feed

toxcore-0.2.11: test/Network/Tox/SaveDataSpec.hs

{-# LANGUAGE Trustworthy #-}
module Network.Tox.SaveDataSpec where

import           Test.Hspec

import qualified Data.Binary              as Binary (get)
import qualified Data.Binary.Get          as Binary (Get)
import           Data.Proxy               (Proxy (..))
import           Network.Tox.EncodingSpec (binarySpec)
import qualified Network.Tox.EncodingSpec as EncodingSpec (expectDecoderFail)
import           Network.Tox.SaveData     (SaveData)


spec :: Spec
spec = do
  binarySpec (Proxy :: Proxy SaveData)

  it "should handle invalid magic numbers" $ do
    expectDecoderFail [0x00, 0x00, 0x00, 0x01]
      "savedata should start with 32 zero-bits"
    expectDecoderFail [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
      "wrong magic number"

  where
    expectDecoderFail =
      EncodingSpec.expectDecoderFail (Binary.get :: Binary.Get SaveData)