packages feed

buffer-builder-0.2.0.3: test/Utf8Test.hs

{-# LANGUAGE MagicHash, OverloadedStrings, TemplateHaskell #-}

module Utf8Test (tests, main) where

import Test.Tasty
import Test.Tasty.TH
import Test.Tasty.HUnit
import Data.BufferBuilder.Utf8
import qualified Data.Text as Text
import qualified Data.Text.Encoding as TE

case_append_string :: Assertion
case_append_string = do
    let str = "foo\NUL\1234"
    let bb = runUtf8Builder $ do
            appendString str
    assertEqual "matches" (Text.pack str) $ TE.decodeUtf8 bb

case_append_chars :: Assertion
case_append_chars = do
    let bb = runUtf8Builder $ do
            appendChar '\NUL'
            appendChar '\x1234'
    assertEqual "matches" (TE.encodeUtf8 "\NUL\x1234") bb

tests :: TestTree
tests = $(testGroupGenerator)

main :: IO ()
main = defaultMain tests