This is an automated email from the ASF dual-hosted git repository.
zhangliang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 95ec0902ee2 Add more test cases on
FirebirdAllocateStatementPacketTest, FirebirdFetchStatementPacketTest,
FirebirdFreeStatementPacketTest (#38170)
95ec0902ee2 is described below
commit 95ec0902ee22d16fba9bbb19326dc11a7b00c93b
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 23 22:47:17 2026 +0800
Add more test cases on FirebirdAllocateStatementPacketTest,
FirebirdFetchStatementPacketTest, FirebirdFreeStatementPacketTest (#38170)
---
.../FirebirdAllocateStatementPacketTest.java | 12 +++++
.../FirebirdFetchStatementPacketTest.java | 52 +++++++++++++++++++---
.../statement/FirebirdFreeStatementPacketTest.java | 12 +++++
3 files changed, 69 insertions(+), 7 deletions(-)
diff --git
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdAllocateStatementPacketTest.java
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdAllocateStatementPacketTest.java
index bb061363a75..2b6bd3dffe6 100644
---
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdAllocateStatementPacketTest.java
+++
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdAllocateStatementPacketTest.java
@@ -18,6 +18,7 @@
package
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.statement;
import
org.apache.shardingsphere.database.protocol.firebird.payload.FirebirdPacketPayload;
+import org.apache.shardingsphere.database.protocol.payload.PacketPayload;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -25,7 +26,9 @@ import org.mockito.junit.jupiter.MockitoExtension;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@@ -46,4 +49,13 @@ class FirebirdAllocateStatementPacketTest {
void assertGetLength() {
assertThat(FirebirdAllocateStatementPacket.getLength(), is(8));
}
+
+ @Test
+ void assertWrite() {
+ when(payload.readInt4()).thenReturn(1);
+ FirebirdAllocateStatementPacket packet = new
FirebirdAllocateStatementPacket(payload);
+ FirebirdPacketPayload writePayload = mock(FirebirdPacketPayload.class);
+ packet.write((PacketPayload) writePayload);
+ verifyNoInteractions(writePayload);
+ }
}
diff --git
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFetchStatementPacketTest.java
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFetchStatementPacketTest.java
index 8d0d4700aea..bc885fe2ca6 100644
---
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFetchStatementPacketTest.java
+++
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFetchStatementPacketTest.java
@@ -20,16 +20,24 @@ package
org.apache.shardingsphere.database.protocol.firebird.packet.command.quer
import io.netty.buffer.ByteBuf;
import
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.FirebirdBinaryColumnType;
import
org.apache.shardingsphere.database.protocol.firebird.payload.FirebirdPacketPayload;
+import org.apache.shardingsphere.database.protocol.payload.PacketPayload;
import org.firebirdsql.gds.BlrConstants;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import static org.hamcrest.Matchers.is;
+import java.util.stream.Stream;
+
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@@ -41,21 +49,33 @@ class FirebirdFetchStatementPacketTest {
@Mock
private ByteBuf byteBuf;
- @Test
- void assertFetchStatementPacket() {
+ @ParameterizedTest(name = "{0}")
+ @MethodSource("assertFetchStatementPacketArguments")
+ void assertFetchStatementPacket(final String name, final short blrType,
final FirebirdBinaryColumnType expectedParameterType) {
when(payload.readInt4()).thenReturn(3, 7, 10);
when(payload.readBuffer()).thenReturn(byteBuf);
when(byteBuf.isReadable()).thenReturn(true);
- when(byteBuf.readUnsignedByte()).thenReturn((short) 9, (short) 0,
(short) BlrConstants.blr_long, (short) BlrConstants.blr_short, (short)
BlrConstants.blr_end);
+ when(byteBuf.readUnsignedByte()).thenReturn((short) 2, (short) 0,
blrType, (short) BlrConstants.blr_end);
when(byteBuf.skipBytes(anyInt())).thenReturn(byteBuf);
FirebirdFetchStatementPacket packet = new
FirebirdFetchStatementPacket(payload);
verify(payload).skipReserved(4);
assertThat(packet.getStatementId(), is(3));
assertThat(packet.getMessage(), is(7));
assertThat(packet.getFetchSize(), is(10));
- assertThat(packet.getParameterTypes().size(), is(2));
- assertThat(packet.getParameterTypes().get(0),
is(FirebirdBinaryColumnType.LONG));
- assertThat(packet.getParameterTypes().get(1),
is(FirebirdBinaryColumnType.SHORT));
+ assertThat(packet.getParameterTypes().size(), is(1));
+ assertThat(packet.getParameterTypes().get(0),
is(expectedParameterType));
+ }
+
+ @Test
+ void assertFetchStatementPacketWhenBLRIsNotReadable() {
+ when(payload.readInt4()).thenReturn(3, 7, 10);
+ when(payload.readBuffer()).thenReturn(byteBuf);
+ FirebirdFetchStatementPacket packet = new
FirebirdFetchStatementPacket(payload);
+ verify(payload).skipReserved(4);
+ assertThat(packet.getStatementId(), is(3));
+ assertThat(packet.getMessage(), is(7));
+ assertThat(packet.getFetchSize(), is(10));
+ assertThat(packet.getParameterTypes().size(), is(0));
}
@Test
@@ -64,4 +84,22 @@ class FirebirdFetchStatementPacketTest {
assertThat(FirebirdFetchStatementPacket.getLength(payload), is(36));
verify(payload).getBufferLength(8);
}
+
+ @Test
+ void assertWrite() {
+ when(payload.readInt4()).thenReturn(3, 7, 10);
+ when(payload.readBuffer()).thenReturn(byteBuf);
+ FirebirdFetchStatementPacket packet = new
FirebirdFetchStatementPacket(payload);
+ FirebirdPacketPayload writePayload = mock(FirebirdPacketPayload.class);
+ packet.write((PacketPayload) writePayload);
+ verifyNoInteractions(writePayload);
+ }
+
+ private static Stream<Arguments> assertFetchStatementPacketArguments() {
+ return Stream.of(
+ Arguments.of("skip_count_4", (short)
BlrConstants.blr_varying2, FirebirdBinaryColumnType.VARYING),
+ Arguments.of("skip_count_2", (short) BlrConstants.blr_text,
FirebirdBinaryColumnType.LEGACY_TEXT),
+ Arguments.of("skip_count_1", (short) BlrConstants.blr_long,
FirebirdBinaryColumnType.LONG),
+ Arguments.of("skip_count_0", (short) BlrConstants.blr_double,
FirebirdBinaryColumnType.DOUBLE));
+ }
}
diff --git
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFreeStatementPacketTest.java
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFreeStatementPacketTest.java
index 75cef1e98a9..9e87ad6f360 100644
---
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFreeStatementPacketTest.java
+++
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/command/query/statement/FirebirdFreeStatementPacketTest.java
@@ -18,6 +18,7 @@
package
org.apache.shardingsphere.database.protocol.firebird.packet.command.query.statement;
import
org.apache.shardingsphere.database.protocol.firebird.payload.FirebirdPacketPayload;
+import org.apache.shardingsphere.database.protocol.payload.PacketPayload;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
@@ -25,7 +26,9 @@ import org.mockito.junit.jupiter.MockitoExtension;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@@ -47,4 +50,13 @@ class FirebirdFreeStatementPacketTest {
void assertGetLength() {
assertThat(FirebirdFreeStatementPacket.getLength(), is(12));
}
+
+ @Test
+ void assertWrite() {
+ when(payload.readInt4()).thenReturn(5,
FirebirdFreeStatementPacket.DROP);
+ FirebirdFreeStatementPacket packet = new
FirebirdFreeStatementPacket(payload);
+ FirebirdPacketPayload writePayload = mock(FirebirdPacketPayload.class);
+ packet.write((PacketPayload) writePayload);
+ verifyNoInteractions(writePayload);
+ }
}