diff options
author | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-12-23 15:55:28 +0300 |
---|---|---|
committer | Pavel Belikov <pavel.fuchs.belikov@gmail.com> | 2017-12-23 15:55:28 +0300 |
commit | a8b96a749d28465af2a45ccfe2b46c6fd96018b2 (patch) | |
tree | 5ec9766d1a7ee21a65cca930b1534731561abcaf /test.cxx | |
parent | change GetChoicesString() signature (diff) | |
download | args.hxx-a8b96a749d28465af2a45ccfe2b46c6fd96018b2.tar.xz |
add auto completion for flags
Diffstat (limited to 'test.cxx')
-rw-r--r-- | test.cxx | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -1245,6 +1245,20 @@ TEST_CASE("Choices description works as expected", "[args]") REQUIRE(mapposlist.HelpChoices(p.helpParams) == std::vector<std::string>{"1", "2"}); } +TEST_CASE("Completion works as expected", "[args]") +{ + using namespace Catch::Matchers; + + args::ArgumentParser p("parser"); + args::CompletionFlag c(p, {"completion"}); + args::ValueFlag<std::string> f(p, "name", "description", {'f', "foo"}, "abc"); + args::ValueFlag<std::string> b(p, "name", "description", {'b', "bar"}, "abc"); + + REQUIRE_THROWS_WITH(p.ParseArgs(std::vector<std::string>{"--completion", "bash", "1", "test", "-"}), Equals("-f\n-b")); + REQUIRE_THROWS_WITH(p.ParseArgs(std::vector<std::string>{"--completion", "bash", "1", "test", "-f"}), Equals("-f")); + REQUIRE_THROWS_WITH(p.ParseArgs(std::vector<std::string>{"--completion", "bash", "1", "test", "--"}), Equals("--foo\n--bar")); +} + #undef ARGS_HXX #define ARGS_TESTNAMESPACE #define ARGS_NOEXCEPT |