aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-java
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@oath.com>2018-10-18 13:56:06 +0200
committerBjørn Christian Seime <bjorncs@oath.com>2018-10-18 13:57:59 +0200
commitcc050d8353e33bde9f684df7db7829077b37f3ff (patch)
treec13427e597e2cf03f6276a36938dba13cdd85e0b /vespaclient-java
parent9c7f1204c55be4c222f2a979ecdc9f33277f43ff (diff)
Fix bug where ']' is printed when listing ids only with json enabled
- Include unit test
Diffstat (limited to 'vespaclient-java')
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java8
-rw-r--r--vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java39
2 files changed, 41 insertions, 6 deletions
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java b/vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java
index a9d861849d1..7d18390a530 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java
@@ -215,10 +215,6 @@ public class StdOutVisitorHandler extends VdsVisitHandler {
}
}
- private void writeFeedEnd() {
- out.println("]");
- }
-
private void onMapVisitorData(Map<String, String> data) {
for (String key : data.keySet()) {
if (doStatistics) {
@@ -253,8 +249,8 @@ public class StdOutVisitorHandler extends VdsVisitHandler {
@Override
public synchronized void onDone() {
- if (jsonOutput) {
- writeFeedEnd();
+ if (jsonOutput && !printIds) {
+ out.println("]");
}
statisticsMap.dumpAll();
super.onDone();
diff --git a/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java b/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java
new file mode 100644
index 00000000000..47a6cad1123
--- /dev/null
+++ b/vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java
@@ -0,0 +1,39 @@
+package com.yahoo.vespavisit;
+
+import com.yahoo.documentapi.VisitorDataHandler;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bjorncs
+ */
+@RunWith(Parameterized.class)
+public class StdOutVisitorHandlerTest {
+ private final boolean jsonOutput;
+
+ public StdOutVisitorHandlerTest(boolean jsonOutput) {
+ this.jsonOutput = jsonOutput;
+ }
+
+ @Parameterized.Parameters(name = "jsonOutput={0}")
+ public static Object[] data() {
+ return new Object[] { true, false};
+ }
+
+ @Test
+ public void printing_ids_for_zero_documents_produces_empty_output() {
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ StdOutVisitorHandler visitorHandler =
+ new StdOutVisitorHandler(/*printIds*/true, false, false, false, false, false, 0, jsonOutput, new PrintStream(out, true));
+ VisitorDataHandler dataHandler = visitorHandler.getDataHandler();
+ dataHandler.onDone();
+ String output = out.toString();
+ assertEquals("", output.trim());
+ }
+} \ No newline at end of file