diff options
-rw-r--r-- | vespaclient-java/src/main/java/com/yahoo/vespavisit/StdOutVisitorHandler.java | 8 | ||||
-rw-r--r-- | vespaclient-java/src/test/java/com/yahoo/vespavisit/StdOutVisitorHandlerTest.java | 39 |
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 |