46 lines
1.5 KiB
Java
46 lines
1.5 KiB
Java
package net.openhft.chronicle.bytes;
|
|
|
|
import org.junit.Test;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigInteger;
|
|
import java.nio.ByteBuffer;
|
|
|
|
import static org.junit.Assert.*;
|
|
import static org.junit.Assume.assumeFalse;
|
|
|
|
public class ReadLenientTest extends BytesTestCommon {
|
|
@Test
|
|
public void testLenient() {
|
|
assumeFalse(NativeBytes.areNewGuarded());
|
|
doTest(Bytes.allocateDirect(64));
|
|
doTest(Bytes.allocateElasticOnHeap(64));
|
|
doTest(Bytes.from(""));
|
|
}
|
|
|
|
@SuppressWarnings("rawtypes")
|
|
private void doTest(Bytes bytes) {
|
|
bytes.lenient(true);
|
|
ByteBuffer bb = ByteBuffer.allocateDirect(32);
|
|
bytes.read(bb);
|
|
assertEquals(0, bb.position());
|
|
|
|
assertEquals(BigDecimal.ZERO, bytes.readBigDecimal());
|
|
assertEquals(BigInteger.ZERO, bytes.readBigInteger());
|
|
assertFalse(bytes.readBoolean());
|
|
assertNull(bytes.read8bit());
|
|
assertNull(bytes.readUtf8());
|
|
assertEquals(0, bytes.readByte());
|
|
assertEquals(-1, bytes.readUnsignedByte()); // note this behaviour is need to find the end of a stream.
|
|
assertEquals(0, bytes.readShort());
|
|
assertEquals(0, bytes.readUnsignedShort());
|
|
assertEquals(0, bytes.readInt());
|
|
assertEquals(0, bytes.readUnsignedInt());
|
|
assertEquals(0.0, bytes.readFloat(), 0.0);
|
|
assertEquals(0.0, bytes.readDouble(), 0.0);
|
|
bytes.readSkip(8);
|
|
assertEquals(0, bytes.readPosition());
|
|
|
|
bytes.releaseLast();
|
|
}
|
|
}
|