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 8b3447e1f57 Add more test cases on FirebirdFetchResponsePacketTest and 
FirebirdGenericResponsePacketTest (#38166)
8b3447e1f57 is described below

commit 8b3447e1f573ba1c968ef1931f5be891eb73e1eb
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 23 21:20:23 2026 +0800

    Add more test cases on FirebirdFetchResponsePacketTest and 
FirebirdGenericResponsePacketTest (#38166)
    
    * Update release notes
    
    * Add more test cases on FirebirdFetchResponsePacketTest and 
FirebirdGenericResponsePacketTest
---
 .../generic/FirebirdFetchResponsePacket.java       |  2 +-
 .../generic/FirebirdFetchResponsePacketTest.java   | 56 ++++++++++----
 .../generic/FirebirdGenericResponsePacketTest.java | 89 +++++++++++++++++++---
 3 files changed, 120 insertions(+), 27 deletions(-)

diff --git 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacket.java
 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacket.java
index 20da8d1b62f..2d61c37bc03 100644
--- 
a/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacket.java
+++ 
b/database/protocol/dialect/firebird/src/main/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacket.java
@@ -31,8 +31,8 @@ import org.firebirdsql.gds.ISCConstants;
 /**
  * SQL fetch packet for Firebird.
  */
-@Getter
 @RequiredArgsConstructor
+@Getter
 public final class FirebirdFetchResponsePacket extends FirebirdPacket {
     
     private final int status;
diff --git 
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacketTest.java
 
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacketTest.java
index b09c9b7a290..343c7a27457 100644
--- 
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacketTest.java
+++ 
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdFetchResponsePacketTest.java
@@ -34,9 +34,11 @@ import org.mockito.junit.jupiter.MockitoExtension;
 
 import java.util.Collections;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
@@ -53,15 +55,39 @@ class FirebirdFetchResponsePacketTest {
     private FirebirdBinaryProtocolValue protocolValue;
     
     @Test
-    void assertWriteRow() {
+    void assertGetFetchRowPacket() {
+        BinaryRow row = new BinaryRow(Collections.singleton(new 
BinaryCell(FirebirdBinaryColumnType.LONG, 123)));
+        FirebirdFetchResponsePacket actual = 
FirebirdFetchResponsePacket.getFetchRowPacket(row);
+        assertThat(actual.getStatus(), is(ISCConstants.FETCH_OK));
+        assertThat(actual.getCount(), is(1));
+        assertThat(actual.getRow(), is(row));
+    }
+    
+    @Test
+    void assertGetFetchNoMoreRowsPacket() {
+        FirebirdFetchResponsePacket actual = 
FirebirdFetchResponsePacket.getFetchNoMoreRowsPacket();
+        assertThat(actual.getStatus(), is(ISCConstants.FETCH_NO_MORE_ROWS));
+        assertThat(actual.getCount(), is(0));
+        assertNull(actual.getRow());
+    }
+    
+    @Test
+    void assertGetFetchEndPacket() {
+        FirebirdFetchResponsePacket actual = 
FirebirdFetchResponsePacket.getFetchEndPacket();
+        assertThat(actual.getStatus(), is(ISCConstants.FETCH_OK));
+        assertThat(actual.getCount(), is(0));
+        assertNull(actual.getRow());
+    }
+    
+    @Test
+    void assertWriteWithNonNullCellData() {
         when(payload.getByteBuf()).thenReturn(byteBuf);
         when(byteBuf.writerIndex()).thenReturn(0);
         when(byteBuf.writeZero(4)).thenReturn(byteBuf);
         BinaryRow row = new BinaryRow(Collections.singleton(new 
BinaryCell(FirebirdBinaryColumnType.LONG, 123)));
         try (MockedStatic<FirebirdBinaryProtocolValueFactory> mocked = 
mockStatic(FirebirdBinaryProtocolValueFactory.class)) {
             mocked.when(() -> 
FirebirdBinaryProtocolValueFactory.getBinaryProtocolValue(FirebirdBinaryColumnType.LONG)).thenReturn(protocolValue);
-            FirebirdFetchResponsePacket packet = 
FirebirdFetchResponsePacket.getFetchRowPacket(row);
-            packet.write(payload);
+            FirebirdFetchResponsePacket.getFetchRowPacket(row).write(payload);
             
verify(payload).writeInt4(FirebirdCommandPacketType.FETCH_RESPONSE.getValue());
             verify(payload).writeInt4(ISCConstants.FETCH_OK);
             verify(payload).writeInt4(1);
@@ -71,21 +97,23 @@ class FirebirdFetchResponsePacketTest {
     }
     
     @Test
-    void assertWriteNoMoreRows() {
-        FirebirdFetchResponsePacket packet = 
FirebirdFetchResponsePacket.getFetchNoMoreRowsPacket();
-        packet.write(payload);
+    void assertWriteWithNullCellData() {
+        when(payload.getByteBuf()).thenReturn(byteBuf);
+        when(byteBuf.writerIndex()).thenReturn(0);
+        when(byteBuf.writeZero(4)).thenReturn(byteBuf);
+        when(byteBuf.getByte(0)).thenReturn((byte) 0);
+        FirebirdFetchResponsePacket.getFetchRowPacket(new 
BinaryRow(Collections.singleton(new BinaryCell(FirebirdBinaryColumnType.LONG, 
null)))).write(payload);
         
verify(payload).writeInt4(FirebirdCommandPacketType.FETCH_RESPONSE.getValue());
-        verify(payload).writeInt4(ISCConstants.FETCH_NO_MORE_ROWS);
-        verify(payload).writeInt4(0);
-        verify(payload, never()).getByteBuf();
+        verify(payload).writeInt4(ISCConstants.FETCH_OK);
+        verify(byteBuf).setByte(0, 1);
     }
     
     @Test
-    void assertWriteEnd() {
-        FirebirdFetchResponsePacket packet = 
FirebirdFetchResponsePacket.getFetchEndPacket();
-        packet.write(payload);
+    void assertWriteWithNullRowData() {
+        FirebirdFetchResponsePacket.getFetchNoMoreRowsPacket().write(payload);
         
verify(payload).writeInt4(FirebirdCommandPacketType.FETCH_RESPONSE.getValue());
-        verify(payload, times(2)).writeInt4(0);
+        verify(payload).writeInt4(ISCConstants.FETCH_NO_MORE_ROWS);
+        verify(payload).writeInt4(0);
         verify(payload, never()).getByteBuf();
     }
 }
diff --git 
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdGenericResponsePacketTest.java
 
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdGenericResponsePacketTest.java
index ad31dd6f2d1..45e9a18f3e4 100644
--- 
a/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdGenericResponsePacketTest.java
+++ 
b/database/protocol/dialect/firebird/src/test/java/org/apache/shardingsphere/database/protocol/firebird/packet/generic/FirebirdGenericResponsePacketTest.java
@@ -31,9 +31,16 @@ import java.sql.SQLException;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.isA;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
-import static org.mockito.Mockito.atLeastOnce;
 
 @ExtendWith(MockitoExtension.class)
 class FirebirdGenericResponsePacketTest {
@@ -44,28 +51,72 @@ class FirebirdGenericResponsePacketTest {
     @Mock
     private ByteBuf byteBuf;
     
-    @Mock
-    private FirebirdPacket data;
+    @Test
+    void assertGetPacket() {
+        assertThat(FirebirdGenericResponsePacket.getPacket(), 
isA(FirebirdGenericResponsePacket.class));
+    }
     
     @Test
-    void assertGetHandleAndId() {
-        FirebirdGenericResponsePacket packet = 
FirebirdGenericResponsePacket.getPacket().setHandle(1).setId(2);
+    void assertSetHandle() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        assertThat(packet.setHandle(1), is(packet));
         assertThat(packet.getHandle(), is(1));
+    }
+    
+    @Test
+    void assertSetIdWithInt() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        assertThat(packet.setId(2), is(packet));
         assertThat(packet.getId(), is(2L));
     }
     
     @Test
-    void assertGetErrorStatusVector() {
+    void assertSetIdWithLong() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        assertThat(packet.setId(2L), is(packet));
+        assertThat(packet.getId(), is(2L));
+    }
+    
+    @Test
+    void assertSetData() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        FirebirdPacket data = mock(FirebirdPacket.class);
+        assertThat(packet.setData(data), is(packet));
+        assertThat(packet.getData(), is(data));
+    }
+    
+    @Test
+    void assertSetErrorStatusVector() {
         SQLException ex = new SQLException("foo_error", "42000", 
ISCConstants.isc_random + 1);
-        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket().setErrorStatusVector(ex);
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        assertThat(packet.setErrorStatusVector(ex), is(packet));
+        assertNotNull(packet.getStatusVector());
         assertThat(packet.getErrorCode(), is(ex.getErrorCode()));
         assertThat(packet.getErrorMessage(), is("foo_error"));
     }
     
     @Test
-    void assertWriteWithoutData() {
+    void assertGetErrorCodeWithNullStatusVector() {
+        assertThat(new FirebirdGenericResponsePacket().getErrorCode(), is(-1));
+    }
+    
+    @Test
+    void assertGetErrorMessageWithNullStatusVector() {
+        assertThat(new FirebirdGenericResponsePacket().getErrorMessage(), 
is(""));
+    }
+    
+    @Test
+    void assertSetWriteZeroStatementId() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket();
+        FirebirdGenericResponsePacket actual = 
packet.setWriteZeroStatementId(true);
+        assertThat(actual, is(packet));
+        assertTrue(packet.isWriteZeroStatementId());
+    }
+    
+    @Test
+    void assertWriteWithoutDataAndStatusVector() {
         when(payload.getByteBuf()).thenReturn(byteBuf);
-        new 
FirebirdGenericResponsePacket().setHandle(3).setId(4).write(payload);
+        
FirebirdGenericResponsePacket.getPacket().setHandle(3).setId(4L).write(payload);
         
verify(payload).writeInt4(FirebirdCommandPacketType.RESPONSE.getValue());
         verify(payload).writeInt4(3);
         verify(payload).writeInt8(4L);
@@ -75,16 +126,30 @@ class FirebirdGenericResponsePacketTest {
     
     @Test
     void assertWriteWithDataAndStatusVector() {
-        when(payload.getByteBuf()).thenReturn(byteBuf);
         when(byteBuf.writeZero(4)).thenReturn(byteBuf);
         when(byteBuf.readableBytes()).thenReturn(4, 8);
         SQLException ex = new SQLException("foo_error", "42000", 
ISCConstants.isc_arith_except);
-        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket().setHandle(1).setId(2).setData(data).setErrorStatusVector(ex);
-        packet.write(payload);
+        when(payload.getByteBuf()).thenReturn(byteBuf);
+        FirebirdPacket data = mock(FirebirdPacket.class);
+        new 
FirebirdGenericResponsePacket().setData(data).setHandle(1).setId(2L).setErrorStatusVector(ex).write(payload);
         verify(data).write(payload);
         verify(payload, atLeastOnce()).writeInt4(ISCConstants.isc_arg_gds);
         verify(payload, atLeastOnce()).writeInt4(ISCConstants.isc_arg_string);
         verify(payload).writeString("foo_error");
         verify(payload, atLeastOnce()).writeInt4(ISCConstants.isc_arg_end);
     }
+    
+    @Test
+    void assertWriteWithZeroStatementId() {
+        FirebirdGenericResponsePacket packet = new 
FirebirdGenericResponsePacket().setHandle(8).setWriteZeroStatementId(true).setId(5L);
+        when(payload.getByteBuf()).thenReturn(byteBuf);
+        packet.write(payload);
+        
verify(payload).writeInt4(FirebirdCommandPacketType.RESPONSE.getValue());
+        verify(payload).writeInt8(5L);
+        verify(payload, never()).writeInt4(8);
+        verify(payload, atLeastOnce()).writeInt4(0);
+        verify(byteBuf).writeZero(4);
+        assertFalse(packet.isWriteZeroStatementId());
+        assertNull(packet.getData());
+    }
 }

Reply via email to