| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- //
- // cli_test.cxx
- // cli-test
- //
- // Created by Sam Jaffe on 10/9/20.
- // Copyright © 2020 Sam Jaffe. All rights reserved.
- //
- #include "cli/cli.h"
- #include "xcode_gtest_helper.h"
- TEST(CliTest, EndsOnQuit) {
- std::stringstream input{R"(quit)"};
- cli::cli(input).run();
- }
- TEST(CliTest, CanInputNoArgsCommand) {
- bool was_hit{false};
- std::stringstream input{R"(act)"};
- cli::cli(input).register_callback("act", [&](){ was_hit = true; }).run();
- EXPECT_TRUE(was_hit);
- }
- TEST(CliTest, WillSkipCallbackIfNotEnoughArgs) {
- bool was_hit{false};
- std::stringstream input{R"(act)"};
- cli::cli(input).register_callback("act", [&](int){ was_hit = true; }).run();
- EXPECT_FALSE(was_hit);
- }
- TEST(CliTest, CanEscapeSpaces) {
- std::string data{};
- std::stringstream input{R"(act A\ B)"};
- cli::cli(input).register_callback("act", [&](std::string const &str){
- data = str;
- }).run();
- EXPECT_THAT(data, "A B");
- }
- TEST(CliTest, CanQuoteWrapArgs) {
- std::string data{};
- std::stringstream input{R"(act "A B")"};
- cli::cli(input).register_callback("act", [&](std::string const &str){
- data = str;
- }).run();
- EXPECT_THAT(data, "A B");
- }
- struct example {};
- void cli_print(example const &) { throw example{}; }
- TEST(CliTest, QueryInvokesADLFunction) {
- std::stringstream input{R"(query)"};
- auto func = [](){ return example{}; };
- EXPECT_THROW(cli::cli(input).register_query("query", func).run(), example);
- }
|