bin/memcp: fix cast
[awesomized/libmemcached] / test / tests / bin / memcat.cpp
index dfc5ddb9b04d88be337a3ef5d9da267bad2f1296..f5d63cc5991c6a4115f662caeae2b45307e27c8a 100644 (file)
@@ -12,19 +12,26 @@ TEST_CASE("bin/memcat") {
   SECTION("no servers provided") {
     string output;
     REQUIRE_FALSE(sh.run("memcat", output));
-    REQUIRE(output == "No servers provided\n");
+    REQUIRE(output == "No servers provided.\n");
+  }
+
+  SECTION("connection failure") {
+    string output;
+    CHECK_FALSE(sh.run("memcat --servers=localhost:" + random_port_string("-p") + " memcat", output));
+    REQUIRE_THAT(output, Contains("CONNECTION FAILURE"));
   }
 
   SECTION("--help") {
     string output;
     REQUIRE(sh.run("memcat --help", output));
-    REQUIRE_THAT(output, Contains("memcat"));
-    REQUIRE_THAT(output, Contains("v1"));
-    REQUIRE_THAT(output, Contains("help"));
-    REQUIRE_THAT(output, Contains("version"));
-    REQUIRE_THAT(output, Contains("option"));
-    REQUIRE_THAT(output, Contains("--"));
-    REQUIRE_THAT(output, Contains("="));
+    REQUIRE_THAT(output, Contains("memcat v1"));
+    REQUIRE_THAT(output, Contains("Usage:"));
+    REQUIRE_THAT(output, Contains("key [key ...]"));
+    REQUIRE_THAT(output, Contains("Options:"));
+    REQUIRE_THAT(output, Contains("-h|--help"));
+    REQUIRE_THAT(output, Contains("-V|--version"));
+    REQUIRE_THAT(output, Contains("Environment:"));
+    REQUIRE_THAT(output, Contains("MEMCACHED_SERVERS"));
   }
 
   SECTION("with server") {
@@ -32,28 +39,48 @@ TEST_CASE("bin/memcat") {
     MemcachedPtr memc;
     LoneReturnMatcher test{*memc};
 
-    server.start();
-    Retry{[&server] { return server.isListening(); }}();
+    REQUIRE(server.ensureListening());
     auto port = get<int>(server.getSocketOrPort());
     auto comm = "memcat --servers=localhost:" + to_string(port) + " ";
 
     REQUIRE_SUCCESS(memcached_server_add(*memc, "localhost", port));
 
-    SECTION("found") {
-      REQUIRE_SUCCESS(memcached_set(*memc, S("memcat"), S("MEMCAT-SET"), 0, 0));
+    SECTION("not found") {
+      memcached_delete(*memc, S("memcat"), 0);
 
       string output;
-      REQUIRE(sh.run(comm + "memcat", output));
-      REQUIRE(output == "MEMCAT-SET\n");
+      REQUIRE_FALSE(sh.run(comm + "memcat", output));
+      REQUIRE(output.empty());
     }
-
-    SECTION("not found") {
+    SECTION("not found --verbose") {
       memcached_delete(*memc, S("memcat"), 0);
 
       string output;
-      REQUIRE_FALSE(sh.run(comm + "memcat", output));
+      REQUIRE_FALSE(sh.run(comm + " -v memcat", output));
       REQUIRE_THAT(output, !Contains("MEMCAT-SET"));
       REQUIRE_THAT(output, Contains("NOT FOUND"));
     }
+    SECTION("found") {
+      string output;
+      REQUIRE_SUCCESS(memcached_set(*memc, S("memcat"), S("MEMCAT-SET"), 0, 123));
+
+      SECTION("default") {
+        REQUIRE(sh.run(comm + "memcat", output));
+        REQUIRE(output == "MEMCAT-SET\n");
+      }
+      SECTION("flags") {
+        REQUIRE(sh.run(comm + "--flag memcat", output));
+        REQUIRE(output == "123\nMEMCAT-SET\n");
+        output.clear();
+        REQUIRE(sh.run(comm + "--flag -v memcat", output));
+        REQUIRE(output == "key: memcat\nflags: 123\nvalue: MEMCAT-SET\n");
+      }
+      SECTION("file") {
+        Tempfile temp;
+        REQUIRE(sh.run(comm + "--file " + temp.getFn() + " memcat", output));
+        REQUIRE(output.empty());
+        REQUIRE(temp.get() == "MEMCAT-SET");
+      }
+    }
   }
 }