capnp-0.4.0.0: tests/Module/Capnp/Basics.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Module.Capnp.Basics (basicsTests) where
import Test.Hspec
import Test.QuickCheck
import Control.Monad.IO.Class (liftIO)
import Test.QuickCheck.Instances ()
import Test.QuickCheck.IO (propertyIO)
import qualified Data.ByteString as BS
import qualified Data.Text as T
import Capnp.Basics
import Capnp (cerialize, evalLimitT, newMessage)
import qualified Capnp.Untyped as U
basicsTests :: Spec
basicsTests =
describe "textBuffer and textBytes agree" $
it "Should return the same number of bytes" $
property $ \(text :: T.Text) -> propertyIO $ evalLimitT maxBound $ do
msg <- newMessage Nothing
cerial <- cerialize msg text
buf <- textBuffer cerial
bytes <- textBytes cerial
liftIO $ BS.length bytes `shouldBe` U.length buf