private RollingSegmentHandle newHandle(int chunkCount) { return newHandle(SEGMENT_NAME, chunkCount); }
/** * Tests the basic Serialization-Deserialization for a Handle with no concat executed on it. */ @Test public void testNormalSerialization() { final int chunkCount = 1000; val source = newHandle(chunkCount); val serialization = serialize(source); val newHandle = HandleSerializer.deserialize(serialization, source.getHeaderHandle()); assertHandleEquals(source, newHandle, source.getHeaderHandle()); Assert.assertEquals("getHeaderLength", serialization.length, newHandle.getHeaderLength()); }
final int failConcatEvery = 2; final int addChunkAfterEveryConcat = 3; val source = newHandle(chunkCount); ByteArrayOutputStream os = new ByteArrayOutputStream(); os.write(serialize(source)); for (int i = 0; i < concatCount; i++) { os.write(HandleSerializer.serializeConcat(chunkCount, source.length())); val concatHandle = newHandle("concat" + i, chunkCount); os.write(serialize(concatHandle)); source.addChunks(concatHandle.chunks().stream() .map(s -> s.withNewOffset(s.getStartOffset() + source.length())).collect(Collectors.toList())); assertHandleEquals(source, newHandle, source.getHeaderHandle()); Assert.assertEquals("getHeaderLength", serialization.length, newHandle.getHeaderLength());