argparser-0.3.1: tests/System/Console/ArgParser/SubParserTest.hs
{-# OPTIONS_GHC -F -pgmF htfpp #-}
module System.Console.ArgParser.SubParserTest where
import System.Console.ArgParser.SubParser
import System.Console.ArgParser.BaseType
import System.Console.ArgParser.QuickParams
import System.Console.ArgParser.Run
import System.Console.ArgParser.Parser
import System.Console.ArgParser.TestHelpers
import Test.Framework
import qualified Test.HUnit as H
{-# ANN module "HLint: ignore Use camelCase" #-}
data MyTest =
MyCons1 Int Int |
MyCons2 Int
deriving (Eq, Show)
myTestParser :: CmdLnInterface MyTest
myTestParser = mkSubParserWithName "subparser"
[ ("A", mkDefaultApp
(MyCons1 `parsedBy` reqPos "pos1" `andBy` reqPos "pos2") "A")
, ("B", mkDefaultApp
(MyCons2 `parsedBy` reqPos "pos1") "B")
]
test_subparser :: H.Assertion
test_subparser = behavior (`parseArgs` myTestParser)
[ (willSucceed (MyCons1 1 2), ["A", "1", "2"])
, (willSucceed (MyCons2 3), ["B", "3"])
, (willFail, ["3"])
]