argparser-0.3.1: tests/System/Console/ArgParser/ArgsProcessTest.hs
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module System.Console.ArgParser.ArgsProcessTest where
import Data.Map as M
import System.Console.ArgParser.ArgsProcess
import Test.Framework
import qualified Test.HUnit as H
{-# ANN module "HLint: ignore Use camelCase" #-}
test_empty :: H.Assertion
test_empty = assertEqual ([], M.empty) $ preprocess []
test_pos :: H.Assertion
test_pos = assertEqual (["1", "2", "3"], M.empty) $ preprocess ["1", "2", "3"]
test_single_flag :: H.Assertion
test_single_flag =
assertEqual ([], M.fromList [("f", ["1", "2", "3"])]) $
preprocess ["-f", "1", "2", "3"]
test_single_flag_long_form :: H.Assertion
test_single_flag_long_form =
assertEqual ([], M.fromList [("foo", ["1", "2", "3"])]) $
preprocess ["--foo", "1", "2", "3"]
test_multiple_flag :: H.Assertion
test_multiple_flag =
assertEqual ([], M.fromList
[ ("f", ["1", "2", "3"])
, ("b", ["7", "8"])
]) $
preprocess ["-f", "1", "2", "3", "-b", "7", "8"]
test_multiple_flag_short_form :: H.Assertion
test_multiple_flag_short_form =
assertEqual ([], M.fromList
[ ("f", [])
, ("b", ["7", "8"])
]) $
preprocess ["-fb", "7", "8"]
test_mix :: H.Assertion
test_mix =
assertEqual (["bar"], M.fromList [("b", ["7", "8"])]) $
preprocess ["bar", "-b", "7", "8"]
test_repeatFlag :: H.Assertion
test_repeatFlag =
assertEqual ([], M.fromList [("b", ["7", "8", "11", "12"])]) $
preprocess ["-b", "7", "-b", "8", "-b", "11", "12"]