Subject: [PATCH] test --- Index: modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/ClientMessagePackerUnpackerTest.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/ClientMessagePackerUnpackerTest.java b/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/ClientMessagePackerUnpackerTest.java --- a/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/ClientMessagePackerUnpackerTest.java (revision 150f14b816a4449c38810d81f17e0c5974aed345) +++ b/modules/client-common/src/test/java/org/apache/ignite/internal/client/proto/ClientMessagePackerUnpackerTest.java (date 1687265401087) @@ -25,6 +25,7 @@ import io.netty.buffer.ByteBufUtil; import io.netty.buffer.PooledByteBufAllocator; import io.netty.buffer.Unpooled; +import java.nio.ByteBuffer; import java.time.Duration; import java.time.Instant; import java.time.LocalDate; @@ -35,6 +36,11 @@ import java.util.BitSet; import java.util.Random; import java.util.UUID; +import org.apache.ignite.internal.binarytuple.BinaryTupleBuilder; +import org.apache.ignite.internal.binarytuple.BinaryTupleReader; +import org.apache.ignite.internal.schema.BinaryTupleSchema; +import org.apache.ignite.internal.schema.BinaryTupleSchema.Element; +import org.apache.ignite.internal.schema.NativeTypes; import org.junit.jupiter.api.Test; /** @@ -61,6 +67,39 @@ assertEquals(0, buf.refCnt()); } + @Test + public void test() { + try (var packer = new ClientMessagePacker(PooledByteBufAllocator.DEFAULT.directBuffer())) { + ByteBuffer bb = new BinaryTupleBuilder(2, false) + .appendInt(42) + .appendInt(12) + .build(); + + // here we are writing only prefix containing just a first element + packer.packBinaryTuple(new BinaryTupleReader(2, bb), 1); + + var buf = packer.getBuffer(); + var len = buf.readInt(); + + byte[] data = new byte[buf.readableBytes()]; + buf.readBytes(data); + + try (var unpacker = new ClientMessageUnpacker(Unpooled.wrappedBuffer(data))) { + var unpackedLen = unpacker.unpackBinaryHeader(); + var res = unpacker.readPayload(unpackedLen); + + ByteBuffer expected = new BinaryTupleBuilder(1, false) + .appendInt(42) + .build(); + + byte[] expectedArr = new byte[expected.limit()]; + expected.get(expectedArr); + + assertArrayEquals(expectedArr, res); + } + } + } + @Test public void testPackerIncludesFourByteMessageLength() { try (var packer = new ClientMessagePacker(PooledByteBufAllocator.DEFAULT.directBuffer())) {