@Test public void testChainThenSplitBasic() { ByteBuffer buf1 = create("0123456789"); ByteBuffer buf2 = create("2222222222"); ByteBuffer buf3 = create("3333333333"); DataWrapper wrap1 = dataGen.wrapByteBuffer(buf1); DataWrapper all = dataGen.chainDataWrappers(wrap1, buf2, buf3); List<? extends DataWrapper> split = dataGen.split(all, 15); DataWrapper left = split.get(0); DataWrapper right = split.get(1); left.releaseUnderlyingBuffers(pool); Assert.assertEquals(1, pool.releasedBuffers.size()); Assert.assertTrue(pool.releasedBuffers.contains(buf1)); Assert.assertTrue(!pool.releasedBuffers.contains(buf2)); Assert.assertTrue(!pool.releasedBuffers.contains(buf3)); right.releaseUnderlyingBuffers(pool); Assert.assertTrue(pool.releasedBuffers.contains(buf1)); Assert.assertTrue(pool.releasedBuffers.contains(buf2)); Assert.assertTrue(pool.releasedBuffers.contains(buf3)); }
@Test public void testBaseCaseByteBufferWrapper() { ByteBuffer buf1 = create("0123456789"); DataWrapper wrapper = dataGen.wrapByteBuffer(buf1); wrapper.releaseUnderlyingBuffers(pool); Assert.assertTrue(pool.releasedBuffers.contains(buf1)); }
@Test public void testChainedWrapper() { ByteBuffer buf1 = create("0123456789"); ByteBuffer buf2 = create("9876543210"); DataWrapper wrapper = dataGen.wrapByteBuffer(buf1); DataWrapper allDat = dataGen.chainDataWrappers(wrapper, buf2); allDat.releaseUnderlyingBuffers(pool); Assert.assertTrue(pool.releasedBuffers.contains(buf1)); Assert.assertTrue(pool.releasedBuffers.contains(buf2)); }
@Test public void testSplitProxyBasic() { ByteBuffer buf1 = create("0123456789"); DataWrapper wrapper = dataGen.wrapByteBuffer(buf1); List<? extends DataWrapper> split = dataGen.split(wrapper, 3); DataWrapper wrap1 = split.get(0); DataWrapper wrap2 = split.get(1); wrap1.releaseUnderlyingBuffers(pool); Assert.assertTrue(!pool.releasedBuffers.contains(buf1)); wrap2.releaseUnderlyingBuffers(pool); Assert.assertTrue(pool.releasedBuffers.contains(buf1)); }