@Test public void testCompact() throws Exception { DynamicByteBuffer readBuffer = DynamicByteBuffer.allocate(512); byte[] bytes = new byte[521]; DynamicByteBuffer data = DynamicByteBuffer.wrap(bytes); readBuffer.putBuffer(data); readBuffer.limit(data.position()); int numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining(); readBuffer.compact(); // compact the read buffer Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position()); byte[] bytes1 = new byte[10]; DynamicByteBuffer data1 = DynamicByteBuffer.wrap(bytes1); readBuffer.putBuffer(data1); readBuffer.limit(data1.position()); numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining(); readBuffer.compact(); // compact the read buffer Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position()); readBuffer.position(10); numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining(); readBuffer.compact(); Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position()); }
@Test public void testByteBufferAllocate() { /* Invariant: 0 <= mark <= position <= limit <= capacity */ DynamicByteBuffer buf = DynamicByteBuffer.allocate(0); // assertEquals(0, buf.mark()); assertEquals(0, buf.position()); assertEquals(0, buf.limit()); assertEquals(0, buf.capacity()); }
@Test public void testGetAndSetBytes() throws Exception { DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); buf.put((byte) 1); buf.put((byte) 2); buf.flip(); assertEquals((byte) 1, buf.get()); assertEquals((byte) 2, buf.get()); buf.flip(); assertEquals((byte) 1, buf.getAt(0)); assertEquals((byte) 2, buf.getAt(1)); buf.flip(); }
@Test public void testGetAndSetSegment() throws Exception { // tests reallocation of buffer automatically. byte[] source = new byte[] {(byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6}; DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); buf.put(source, 1, 4); // put 2,3,4,5 into buffer buf.flip(); assertEquals(4, buf.remaining()); byte[] dest = new byte[3]; buf.get(dest, 1, 2); // get 3,4 into dest, start position at 1 assertEquals((byte) 0, dest[0]); assertEquals((byte) 2, dest[1]); assertEquals((byte) 3, dest[2]); }
@Test public void testGetAndSetShorts() throws Exception { // tests reallocation of buffer automatically. DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); buf.putShort((short) 1); buf.putShort((short) 2); buf.putShort((short) 3); buf.putShort((short) 4); buf.putShort((short) 5); buf.flip(); assertEquals((short) 1, buf.getShort()); assertEquals((short) 1, buf.getShortAt(0)); assertEquals((short) 2, buf.getShortAt(2)); assertEquals((short) 3, buf.getShortAt(4)); assertEquals((short) 2, buf.getShort()); assertEquals((short) 3, buf.getShort()); assertEquals((short) 4, buf.getShort()); assertEquals((short) 5, buf.getShort()); }
@Test public void testGetAndSetVarious() throws Exception { // tests reallocation of buffer automatically. DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); buf.put((byte) 1); buf.putShort((short) 2); buf.putInt(3); buf.putLong(4); String test = "this"; buf.putString(test, Charset.defaultCharset()); buf.put((byte) 0); buf.putPrefixedString(1, "abcde", Charset.defaultCharset()); buf.flip(); assertEquals((byte) 1, buf.get()); assertEquals((short) 2, buf.getShort()); assertEquals(3, buf.getInt()); assertEquals(4, buf.getLong()); assertEquals(test, buf.getString(Charset.defaultCharset())); assertEquals("abcde", buf.getPrefixedString(1, Charset.defaultCharset())); }
@Test public void testGetAndSetStringsInASCII() throws Exception { // tests reallocation of buffer automatically. DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); String test = "this"; String test1 = "is"; String test2 = "a"; String test3 = "story"; Charset cs = Charset.forName("ASCII"); buf.putString(test, cs); buf.put((byte) 0); buf.putPrefixedString(2, "abcde", cs); buf.putPrefixedString(2, test1, cs); buf.putPrefixedString(2, test2, cs); buf.putPrefixedString(2, test3, cs); buf.flip(); assertEquals(test, buf.getString(cs)); assertEquals("abcde", buf.getPrefixedString(2, cs)); assertEquals(test1, buf.getPrefixedString(2, cs)); assertEquals(test2, buf.getPrefixedString(2, cs)); assertEquals(test3, buf.getPrefixedString(2, cs)); }
@Test public void testGetAndSetPrefixStringsInUTF16() throws Exception { // tests reallocation of buffer automatically. DynamicByteBuffer buf = DynamicByteBuffer.allocate(2); Charset cs = Charset.forName("UTF-16"); String test = "this"; String test1 = "is"; String test2 = "a"; String test3 = "story"; buf.putPrefixedString(2, test, cs); buf.putPrefixedString(2, test1, cs); buf.putPrefixedString(2, test2, cs); buf.putPrefixedString(2, test3, cs); buf.put((byte) 0); buf.putInt(100); buf.flip(); assertEquals(test, buf.getPrefixedString(2, cs)); assertEquals(test1, buf.getPrefixedString(2, cs)); assertEquals(test2, buf.getPrefixedString(2, cs)); assertEquals(test3, buf.getPrefixedString(2, cs)); assertEquals((byte) 0, buf.get()); assertEquals(100, buf.getInt()); }
@Test(expected = BufferUnderflowException.class) public void testGetAndSetGetLongException3() { DynamicByteBuffer buf = DynamicByteBuffer.allocate(0); buf.getLong(); }
@Test(expected = BufferOverflowException.class) public void testGetAndSetPutLongException() { DynamicByteBuffer buf = DynamicByteBuffer.allocate(0); buf.setAutoExpand(false); buf.putLong(121L); }
@Test(expected = BufferUnderflowException.class) public void testGetAndSetGetMediumIntException3() { DynamicByteBuffer buf = DynamicByteBuffer.allocate(0); buf.getUnsignedMediumInt(); }
@Test(expected = BufferOverflowException.class) public void testGetAndSetPutUnsignedIntException() throws Exception { DynamicByteBuffer buf = DynamicByteBuffer.allocate(0); buf.setAutoExpand(false); buf.putUnsignedInt(121); }