packages feed

hnormalise-0.2.0.0: test/HNormalise/Common/ParserSpec.hs

{-# LANGUAGE OverloadedStrings     #-}

module HNormalise.Common.ParserSpec (main, spec) where

--------------------------------------------------------------------------------
import           Data.Attoparsec.Text
import           Data.Text                 (Text)
import           Test.Hspec
import           Test.Hspec.Attoparsec
import           HNormalise.Common.Parser

--------------------------------------------------------------------------------
main :: IO ()
main = hspec spec

--------------------------------------------------------------------------------
spec :: Spec
spec = do
    describe "kvTextParser" $ do
        it "parse a key value pair with given key" $ do
            ("foo=bar" :: Text) ~> (kvTextParser "foo") `shouldParse` ("bar" :: Text)

    describe "kvTextDelimParser" $ do
        it "parse a key value pair delimited by a given char" $ do
            ("foo=barD" :: Text) ~> (kvTextDelimParser "foo" "D") `shouldParse` ("bar" :: Text)

    describe "kvNumParser" $ do
        it "parse a key value pair with an integral value" $ do
            ("foo=42" :: Text) ~> (kvNumParser "foo") `shouldParse` 42