diff options
author | Taylor C. Richberger <taywee@gmx.com> | 2017-10-15 09:58:44 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-15 09:58:44 -0600 |
commit | 69547d215c0a58f42f0ba97a281d56d8a001240d (patch) | |
tree | 101c4aa5d90165e1b2d44bb7dd4cb05004e5e4cb /test.cxx | |
parent | add readme note (diff) | |
parent | add Options::Required flag (diff) | |
download | args.hxx-69547d215c0a58f42f0ba97a281d56d8a001240d.tar.xz |
Merge pull request #31 from pavel-belikov/required-options
Required flags
Diffstat (limited to 'test.cxx')
-rw-r--r-- | test.cxx | 20 |
1 files changed, 20 insertions, 0 deletions
@@ -570,6 +570,26 @@ TEST_CASE("Kick-out should work via all flags and value flags", "[args]") REQUIRE(d3); } +TEST_CASE("Required flags work as expected", "[args]") +{ + args::ArgumentParser parser1("Test command"); + args::ValueFlag<int> foo(parser1, "foo", "foo", {'f', "foo"}, args::Options::Required); + args::ValueFlag<int> bar(parser1, "bar", "bar", {'b', "bar"}); + + parser1.ParseArgs(std::vector<std::string>{"-f", "42"}); + REQUIRE(foo.Get() == 42); + + REQUIRE_THROWS_AS(parser1.ParseArgs(std::vector<std::string>{"-b4"}), args::RequiredError); + + args::ArgumentParser parser2("Test command"); + args::Positional<int> pos1(parser2, "a", "a"); + REQUIRE_NOTHROW(parser2.ParseArgs(std::vector<std::string>{})); + + args::ArgumentParser parser3("Test command"); + args::Positional<int> pos2(parser3, "a", "a", args::Options::Required); + REQUIRE_THROWS_AS(parser3.ParseArgs(std::vector<std::string>{}), args::RequiredError); +} + #undef ARGS_HXX #define ARGS_TESTNAMESPACE #define ARGS_NOEXCEPT |