diff --git a/core/src/test/java/org/bitcoinj/base/VarIntTest.java b/core/src/test/java/org/bitcoinj/base/VarIntTest.java index d9742df3d..6d0a608ed 100644 --- a/core/src/test/java/org/bitcoinj/base/VarIntTest.java +++ b/core/src/test/java/org/bitcoinj/base/VarIntTest.java @@ -21,7 +21,11 @@ import junitparams.Parameters; import org.junit.Test; import org.junit.runner.RunWith; +import java.nio.Buffer; +import java.nio.ByteBuffer; + import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; @RunWith(JUnitParamsRunner.class) public class VarIntTest { @@ -62,6 +66,19 @@ public class VarIntTest { assertEquals(value, VarInt.ofBytes(a.encode(), 0).longValue()); } + @Test + @Parameters(method = "longTestVectors") + public void writeThenRead(long value, int size) { + VarInt varInt = VarInt.of(value); + ByteBuffer buf = ByteBuffer.allocate(varInt.getSizeInBytes()); + varInt.write(buf); + assertFalse(buf.hasRemaining()); + ((Buffer) buf).rewind(); + VarInt varIntCopy = VarInt.read(buf); + assertFalse(buf.hasRemaining()); + assertEquals(varInt, varIntCopy); + } + private Object[] integerTestVectors() { return new Object[]{ new Object[]{ 0, 1},