datastructures/datastructures-bytes/src/test/java/net/openhft/chronicle/bytes/ReadLenientTest.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();
}
}