diff options
author | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-11-12 16:45:02 +0300 |
---|---|---|
committer | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-11-12 16:59:19 +0300 |
commit | a86c29be5bb206420aa7520633782c7fc6c1b4db (patch) | |
tree | ebafc5ef3313e0b1e25ddb451adf6126fe973eef | |
parent | add HelpParams::proglineShowFlags (diff) | |
download | args.hxx-a86c29be5bb206420aa7520633782c7fc6c1b4db.tar.xz |
add Matcher validation tests
-rw-r--r-- | args.hxx | 4 | ||||
-rw-r--r-- | test.cxx | 17 |
2 files changed, 19 insertions, 2 deletions
@@ -344,7 +344,7 @@ namespace args */ template <typename Short, typename Long> Matcher(Short &&shortIn, Long &&longIn) : - shortFlags(std::begin(shortIn), std::end(shortIn)), longFlags(std::begin(longIn), std::end(longIn)) + Matcher(std::begin(shortIn), std::end(shortIn), std::begin(longIn), std::end(longIn)) {} /** Specify a mixed single initializer-list of both short and long flags @@ -360,7 +360,7 @@ namespace args * args::Matcher{"foo", 'f', 'F', "FoO"} */ Matcher(std::initializer_list<EitherFlag> in) : - shortFlags(EitherFlag::GetShort(in)), longFlags(EitherFlag::GetLong(in)) {} + Matcher(EitherFlag::GetShort(in), EitherFlag::GetLong(in)) {} Matcher(Matcher &&other) : shortFlags(std::move(other.shortFlags)), longFlags(std::move(other.longFlags)) {} @@ -958,6 +958,12 @@ TEST_CASE("GetProgramLine works as expected", "[args]") REQUIRE(line(b) == "b -f <STRING> [positional]"); } +TEST_CASE("Matcher validation works as expected", "[args]") +{ + args::ArgumentParser parser("Test command"); + REQUIRE_THROWS_AS(args::ValueFlag<int>(parser, "", "", {}), args::UsageError); +} + #undef ARGS_HXX #define ARGS_TESTNAMESPACE #define ARGS_NOEXCEPT @@ -1088,6 +1094,17 @@ TEST_CASE("Nargs work as expected in noexcept mode", "[args]") argstest::ArgumentParser parser("Test command"); argstest::NargsValueFlag<int> a(parser, "", "", {'a'}, {3, 2}); + REQUIRE(parser.GetError() == argstest::Error::Usage); + parser.ParseArgs(std::vector<std::string>{"-a", "1", "2"}); + REQUIRE(parser.GetError() == argstest::Error::Usage); +} + +TEST_CASE("Matcher validation works as expected in noexcept mode", "[args]") +{ + argstest::ArgumentParser parser("Test command"); + argstest::ValueFlag<int> a(parser, "", "", {}); + + REQUIRE(parser.GetError() == argstest::Error::Usage); parser.ParseArgs(std::vector<std::string>{"-a", "1", "2"}); REQUIRE(parser.GetError() == argstest::Error::Usage); } |