Repository: nifi Updated Branches: refs/heads/master 266bd80bd -> e59cf8665
NIFI-3188: Added unit test to test corner cases This closes #1321. Signed-off-by: Koji Kawamura <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/nifi/commit/e59cf866 Tree: http://git-wip-us.apache.org/repos/asf/nifi/tree/e59cf866 Diff: http://git-wip-us.apache.org/repos/asf/nifi/diff/e59cf866 Branch: refs/heads/master Commit: e59cf8665660507e3e53edbc480b76be48595a62 Parents: 266bd80 Author: Mark Payne <[email protected]> Authored: Mon Dec 12 15:23:40 2016 -0500 Committer: Koji Kawamura <[email protected]> Committed: Wed Dec 14 10:57:11 2016 +0900 ---------------------------------------------------------------------- .../stream/io/util/StreamDemarcatorTest.java | 34 ++++++++++++++++++++ 1 file changed, 34 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/nifi/blob/e59cf866/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/util/StreamDemarcatorTest.java ---------------------------------------------------------------------- diff --git a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/util/StreamDemarcatorTest.java b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/util/StreamDemarcatorTest.java index 66d2668..cfac6de 100644 --- a/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/util/StreamDemarcatorTest.java +++ b/nifi-commons/nifi-utils/src/test/java/org/apache/nifi/stream/io/util/StreamDemarcatorTest.java @@ -257,6 +257,40 @@ public class StreamDemarcatorTest { } @Test + public void testOnBufferCorners() throws IOException { + byte[] inputData = "YesDEMARCATORNo".getBytes(StandardCharsets.UTF_8); + final int[] initialLengths = new int[] {1, 2, 12, 13, 14, 15, 16, 25}; + + for (final int initialBufferLength : initialLengths) { + ByteArrayInputStream is = new ByteArrayInputStream(inputData); + StreamDemarcator scanner = new StreamDemarcator(is, "DEMARCATOR".getBytes(), 1000, initialBufferLength); + + final byte[] first = scanner.nextToken(); + final byte[] second = scanner.nextToken(); + assertNotNull(first); + assertNotNull(second); + + assertArrayEquals(new byte[] {'Y', 'e', 's'}, first); + assertArrayEquals(new byte[] {'N', 'o'}, second); + } + + inputData = "NoDEMARCATORYes".getBytes(StandardCharsets.UTF_8); + for (final int initialBufferLength : initialLengths) { + ByteArrayInputStream is = new ByteArrayInputStream(inputData); + StreamDemarcator scanner = new StreamDemarcator(is, "DEMARCATOR".getBytes(), 1000, initialBufferLength); + + final byte[] first = scanner.nextToken(); + final byte[] second = scanner.nextToken(); + assertNotNull(first); + assertNotNull(second); + + assertArrayEquals(new byte[] {'N', 'o'}, first); + assertArrayEquals(new byte[] {'Y', 'e', 's'}, second); + } + } + + + @Test public void testOnBufferSplit() throws IOException { final byte[] inputData = "123\n456\n789".getBytes(StandardCharsets.UTF_8); ByteArrayInputStream is = new ByteArrayInputStream(inputData);
