diff options
author | Bjørn Christian Seime <bjorncs@oath.com> | 2018-10-18 13:56:06 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@oath.com> | 2018-10-18 13:57:59 +0200 |
commit | cc050d8353e33bde9f684df7db7829077b37f3ff (patch) | |
tree | c13427e597e2cf03f6276a36938dba13cdd85e0b /vespaclient-java/src | |
parent | 9c7f1204c55be4c222f2a979ecdc9f33277f43ff (diff) |
Fix bug where ']' is printed when listing ids only with json enabled
- Include unit test
Diffstat (limited to 'vespaclient-java/src')
-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 |