diff --git a/test/unittest/test_parsing.cpp b/test/unittest/test_parsing.cpp index 27187111..cdc766b9 100644 --- a/test/unittest/test_parsing.cpp +++ b/test/unittest/test_parsing.cpp @@ -147,3 +147,27 @@ TEST_CASE("Positional argument does not consume unrecognised optional argument") CHECK_THROWS_WITH_AS(parser.parse_args(2, cstr_arr{"prog", "-o"}), "unrecognised arguments: -o", argparse::parsing_error); } + +TEST_CASE("Parsing") +{ + auto parser = argparse::ArgumentParser().handle(argparse::Handle::none); + parser.add_argument("pos1"); + parser.add_argument("pos2"); + parser.add_argument("--opt1"); + parser.add_argument("--opt2"); + + auto args = parser.parse_args(6, cstr_arr{"prog", "p1", "--opt1", "o1", "--", "--opt2"}); + + CHECK(args.get_value("pos1") == "p1"); + CHECK(args.get_value("pos2") == "--opt2"); + CHECK(args.get_value("opt1") == "o1"); + CHECK(!args.get("opt2")); +} + +TEST_CASE("Parsing") +{ + auto parser = argparse::ArgumentParser().handle(argparse::Handle::none); + parser.add_argument("pos").nargs(argparse::zero_or_more); + + auto args = parser.parse_args(5, cstr_arr{"prog", "p1", "p2", "--", "p3"}); +}