| /* |
| * Copyright (C) 2018 CESNET, https://photonics.cesnet.cz/ |
| * Copyright (C) 2018 FIT CVUT, https://fit.cvut.cz/ |
| * |
| * Written by Václav Kubernát <kubervac@fit.cvut.cz> |
| * |
| */ |
| |
| #include "trompeloeil_catch.h" |
| #include "parser.hpp" |
| #include "static_schema.hpp" |
| |
| TEST_CASE("command completion") |
| { |
| auto schema = std::make_shared<StaticSchema>(); |
| Parser parser(schema); |
| std::string input; |
| std::ostringstream errorStream; |
| std::set<std::string> expected; |
| SECTION("") |
| { |
| input = ""; |
| expected = {"cd", "create", "delete", "set", "commit", "get", "ls", "discard"}; |
| } |
| |
| SECTION(" ") |
| { |
| input = " "; |
| expected = {"cd", "create", "delete", "set", "commit", "get", "ls", "discard"}; |
| } |
| |
| SECTION("c") |
| { |
| input = "c"; |
| expected = {"cd", "commit", "create"}; |
| } |
| |
| SECTION("d") |
| { |
| input = "d"; |
| expected = {"delete", "discard"}; |
| } |
| |
| SECTION("x") |
| { |
| input = "x"; |
| expected = {}; |
| } |
| |
| SECTION("cd") |
| { |
| input = "cd"; |
| // TODO: depending on how Readline works, this will have to be changed to include a space |
| expected = {"cd"}; |
| } |
| |
| SECTION("create") |
| { |
| input = "create"; |
| expected = {"create"}; |
| } |
| |
| REQUIRE(parser.completeCommand(input, errorStream) == expected); |
| } |