Added a test for the mark() method
diff --git a/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java b/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
index 9e2a3b2..cd0931f 100644
--- a/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
+++ b/codec/src/test/java/org/apache/mina/codec/IoBufferTest.java
@@ -152,12 +152,12 @@
ioBuffer.add(bb1, bb2);
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// Test the allocate(int) method
// 1) allocation with a negative value
// 2) allocation with a 0 length
// 3) allocation with a 1024 value
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
/**
* Test the allocation of a new heap IoBuffer with a negative value
*/
@@ -194,12 +194,12 @@
assertTrue(ioBuffer.hasRemaining());
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// Test the allocateDirect(int) method. We check :
// 1) allocation with a negative value
// 2) allocation with a 0 length
// 3) allocation with a 1024 value
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
/**
* Test the allocation of a new heap IoBuffer with a negative value
*/
@@ -237,7 +237,8 @@
}
/**
- * Test the get() method on a IoBuffer containing one ByteBuffer with 3 bytes
+ * Test the get() method on a IoBuffer containing one ByteBuffer with 3
+ * bytes
*/
@Test
public void testGetOneBuffer3Bytes() {
@@ -267,7 +268,8 @@
}
/**
- * Test the get() method on a IoBuffer containing one ByteBuffer with 0 bytes
+ * Test the get() method on a IoBuffer containing one ByteBuffer with 0
+ * bytes
*/
@Test
public void testGetOneBuffer0Bytes() {
@@ -288,7 +290,8 @@
}
/**
- * Test the get() method on a IoBuffer containing two ByteBuffer with 3 bytes
+ * Test the get() method on a IoBuffer containing two ByteBuffer with 3
+ * bytes
*/
@Test
public void testGetTwoBuffer3Bytes() {
@@ -328,13 +331,13 @@
}
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// Test the array() method. We will check those cases :
// 1) array over an empty buffer: we should get an empty byte array
- // 2) array over a buffer with one single empty ByteBuffer
+ // 2) array over a buffer with one single empty ByteBuffer
// 3) array over a buffer with one single ByteBuffer with data
- // 4) array over a buffer containing many ByteBuffers
- //-------------------------------------------------------------------------
+ // 4) array over a buffer containing many ByteBuffers
+ // -------------------------------------------------------------------------
/**
* Test the array method for a IoBuffer containing one empty ByteBuffer
*/
@@ -349,7 +352,8 @@
}
/**
- * Test the array method for a IoBuffer containing one ByteBuffer (cases 2 and 3)
+ * Test the array method for a IoBuffer containing one ByteBuffer (cases 2
+ * and 3)
*/
@Test
public void testArrayOneByteBuffer() {
@@ -374,7 +378,8 @@
}
/**
- * Test the array method for a IoBuffer containing one ByteBuffer not initialized
+ * Test the array method for a IoBuffer containing one ByteBuffer not
+ * initialized
*/
@Test
public void testArrayByteBufferNotInitialized() {
@@ -403,7 +408,8 @@
}
/**
- * Test the getInt() method, on a buffer containing 2 ints in two ByteBuffers
+ * Test the getInt() method, on a buffer containing 2 ints in two
+ * ByteBuffers
*/
@Test
public void testGetInt2Ints2BBs() {
@@ -422,8 +428,8 @@
}
/**
- * Test the getInt() method, on a buffer containing 2 ints in two ByteBuffers
- * with LittleInidan order
+ * Test the getInt() method, on a buffer containing 2 ints in two
+ * ByteBuffers with LittleInidan order
*/
@Test
public void testGetInt2Ints2BBsLittleIndian() {
@@ -445,7 +451,8 @@
}
/**
- * Test the getInt() method, on a buffer containing 1 int spread in two ByteBuffers
+ * Test the getInt() method, on a buffer containing 1 int spread in two
+ * ByteBuffers
*/
@Test
public void testGetInt1Int2BBs() {
@@ -463,7 +470,8 @@
}
/**
- * Test the getInt() method, on a buffer containing 1 incomplet int spread in two ByteBuffers
+ * Test the getInt() method, on a buffer containing 1 incomplet int spread
+ * in two ByteBuffers
*/
@Test(expected = BufferUnderflowException.class)
public void testGetIntIncompletInt2BBs() {
@@ -542,14 +550,14 @@
}
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// The the clear method. It will erase all the data in all the inner
// ByteBuffer, thus the buffer size might increase.
// We will check those case :
// 1) clear an empty buffer
// 2) clear a buffer with one ByteBuffer
// 3) clear a buffer with numerous ByteBuffers
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
/**
* Test the clear() method
*/
@@ -601,6 +609,18 @@
ioBuffer.position(3);
ioBuffer.mark();
+ // check that we are at the right position
+ byte b = ioBuffer.get();
+ assertEquals(b, '3');
+
+ b = ioBuffer.get();
+ assertEquals(b, '4');
+
+ // Now reset to the mark
+ ioBuffer.reset();
+ b = ioBuffer.get();
+ assertEquals(b, '3');
+
ioBuffer.position(6);
ioBuffer.reset();
@@ -614,7 +634,7 @@
ioBuffer.reset();
fail("An InvalidMarkException should have been thrown");
} catch (InvalidMarkException ime) {
- //
+ //
}
}
@@ -645,13 +665,13 @@
assertEquals(8, ioBuffer.limit());
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// Test the position() method
- // We will test that the position() metho returns the correct result in
+ // We will test that the position() metho returns the correct result in
// those cases :
// 1) the buffer is empty : must return 0
// 2) must return a value between 0 and limit()
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
/**
* Test the position method over an emptyIoBuffer
*/
@@ -716,19 +736,19 @@
}
}
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
// Test the position(int) method
// We will test many different cases
// 1) a position() in an empty buffer
// 2) a position() with a negative value
// 3) a position() with a value above the limit
// 4) a position() within the current buffer
- // 4-1) at the beginning of the current buffer
- // 4-2) at the end of the current buffer
- // 4-3) in the middle of the current buffer
+ // 4-1) at the beginning of the current buffer
+ // 4-2) at the end of the current buffer
+ // 4-3) in the middle of the current buffer
// 5) a position() before the current buffer
// 6) a position() after the current buffer
- //-------------------------------------------------------------------------
+ // -------------------------------------------------------------------------
/**
* Test the position method over an emptyIoBuffer
*/
@@ -1043,7 +1063,7 @@
ioBuffer.putChar(3, '\u00F1');
fail("Not enough place on the buffer");
} catch (BufferUnderflowException e) {
- // Should come here
+ // Should come here
}
try {