@Test public void testConcatAndSplitOneSegments() { List<byte[]> segList1 = new LinkedList<byte[]>(); segList1.add("foo".getBytes()); byte[] concat = keyCatStrat.concat(segList1); assertEquals("foo".getBytes().length, concat.length); List<byte[]> segList2 = keyCatStrat.split(concat); assertEquals(segList1.size(), segList2.size()); for (int i = 0; i < segList1.size(); i++) { assertEquals("'" + new String(segList1.get(i)) + "' expected, but got '" + new String(segList2.get(i)) + "'", ByteBuffer.wrap(segList1.get(i)), ByteBuffer.wrap(segList2.get(i))); } }
@Test public void testConcatAndSplitOneSegmentContainingPartOfDelimeter() { List<byte[]> segList1 = new LinkedList<byte[]>(); segList1.add("f|o|o".getBytes()); byte[] concat = keyCatStrat.concat(segList1); assertEquals("f|o|o".getBytes().length, concat.length); List<byte[]> segList2 = keyCatStrat.split(concat); assertEquals(segList1.size(), segList2.size()); for (int i = 0; i < segList1.size(); i++) { assertEquals("'" + new String(segList1.get(i)) + "' expected, but got '" + new String(segList2.get(i)) + "'", ByteBuffer.wrap(segList1.get(i)), ByteBuffer.wrap(segList2.get(i))); } }
@Test public void testConcatAndSplitMultipleSegments() { List<byte[]> segList1 = new LinkedList<byte[]>(); segList1.add("foo".getBytes()); segList1.add("bar".getBytes()); segList1.add("forever".getBytes()); byte[] concat = keyCatStrat.concat(segList1); assertEquals( "foo".getBytes().length + keyCatStrat.getDelimiter().length + "bar".getBytes().length + keyCatStrat.getDelimiter().length + "forever".getBytes().length, concat.length); List<byte[]> segList2 = keyCatStrat.split(concat); assertEquals(segList1.size(), segList2.size()); for (int i = 0; i < segList1.size(); i++) { assertEquals("'" + new String(segList1.get(i)) + "' expected, but got '" + new String(segList2.get(i)) + "'", ByteBuffer.wrap(segList1.get(i)), ByteBuffer.wrap(segList2.get(i))); } }
@Test public void testConcatAndSplitWithEmptySegments() { List<byte[]> segList1 = new LinkedList<byte[]>(); segList1.add("foo".getBytes()); segList1.add("".getBytes()); segList1.add("".getBytes()); segList1.add("forever".getBytes()); segList1.add("".getBytes()); byte[] concat = keyCatStrat.concat(segList1); assertEquals( "foo".getBytes().length + keyCatStrat.getDelimiter().length + "".getBytes().length + keyCatStrat.getDelimiter().length + "".getBytes().length + keyCatStrat.getDelimiter().length + "forever".getBytes().length + keyCatStrat.getDelimiter().length + "".getBytes().length , concat.length) ; List<byte[]> segList2 = keyCatStrat.split(concat); assertEquals(segList1.size(), segList2.size()); for (int i = 0; i < segList1.size(); i++) { assertEquals("'" + new String(segList1.get(i)) + "' expected, but got '" + new String(segList2.get(i)) + "'", ByteBuffer.wrap(segList1.get(i)), ByteBuffer.wrap(segList2.get(i))); } }