class TEST_CLI_08 -- -- Same as TEST_CLI_02 with the special "remaining_parameters" to parse -- insert ARGUMENTS EIFFELTEST_TOOLS COMMAND_LINE_ARGUMENT_FACTORY create {} make feature {} make local foo_option: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING] bar_option: COMMAND_LINE_TYPED_ARGUMENT[INTEGER] do foo_option := option_string("f", "foo", "foo", "The foo string") bar_option := option_integer("b", "bar", "bar", "The bar integer") create args.make(foo_option and bar_option and remaining_parameters) -- an empty command line is valid setup command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) -- a foo option takes a string setup command_arguments.add_last("--foo") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("--foo") command_arguments.add_last("the foo option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo option")) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("--foo=the foo option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo option")) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-f") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("-f") command_arguments.add_last("the foo option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo option")) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) -- a bar option takes an integer setup command_arguments.add_last("--bar") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("--bar") command_arguments.add_last("the foo option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("--bar") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("--bar=42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-b") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("-b") command_arguments.add_last("the foo option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(not args.parse_command_line) setup command_arguments.add_last("-b") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) -- can have both foo and bar... setup command_arguments.add_last("--foo") command_arguments.add_last("the foo z'option") command_arguments.add_last("--bar") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-f") command_arguments.add_last("the foo z'option") command_arguments.add_last("-b") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-f") command_arguments.add_last("the foo z'option") command_arguments.add_last("--bar") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("--foo") command_arguments.add_last("the foo z'option") command_arguments.add_last("-b") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-fb") command_arguments.add_last("the foo z'option") command_arguments.add_last("42") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) -- ... in any order setup command_arguments.add_last("--bar") command_arguments.add_last("42") command_arguments.add_last("--foo") command_arguments.add_last("the foo z'option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-b") command_arguments.add_last("42") command_arguments.add_last("-f") command_arguments.add_last("the foo z'option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("--bar") command_arguments.add_last("42") command_arguments.add_last("-f") command_arguments.add_last("the foo z'option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-b") command_arguments.add_last("42") command_arguments.add_last("--foo") command_arguments.add_last("the foo z'option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) setup command_arguments.add_last("-bf") command_arguments.add_last("42") command_arguments.add_last("the foo z'option") command_arguments.add_last(once "--") command_arguments.add_last(once "--foo=ignored") command_arguments.add_last(once "--bar") command_arguments.add_last(once "oh well") assert(args.parse_command_line) assert(foo_option.item.is_equal("the foo z'option")) assert(bar_option.item = 42) assert(remaining_parameters.item.count = 3) assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored")) assert(remaining_parameters.item.item(1).is_equal(once "--bar")) assert(remaining_parameters.item.item(2).is_equal(once "oh well")) end setup do command_arguments.make(1) end args: COMMAND_LINE_ARGUMENTS end