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 0a3d51f27b8 Add more test cases on
OpenGaussAuthenticationSCRAMSha256Packet (#38195)
0a3d51f27b8 is described below
commit 0a3d51f27b86ee63ed02bdeb099d3d03c93763d5
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Feb 25 18:20:47 2026 +0800
Add more test cases on OpenGaussAuthenticationSCRAMSha256Packet (#38195)
---
...enGaussAuthenticationSCRAMSha256PacketTest.java | 45 +++++++++++-----------
1 file changed, 22 insertions(+), 23 deletions(-)
diff --git
a/database/protocol/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/protocol/opengauss/packet/authentication/OpenGaussAuthenticationSCRAMSha256PacketTest.java
b/database/protocol/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/protocol/opengauss/packet/authentication/OpenGaussAuthenticationSCRAMSha256PacketTest.java
index 9f7839f1006..f20e66a29b2 100644
---
a/database/protocol/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/protocol/opengauss/packet/authentication/OpenGaussAuthenticationSCRAMSha256PacketTest.java
+++
b/database/protocol/dialect/opengauss/src/test/java/org/apache/shardingsphere/database/protocol/opengauss/packet/authentication/OpenGaussAuthenticationSCRAMSha256PacketTest.java
@@ -18,9 +18,18 @@
package
org.apache.shardingsphere.database.protocol.opengauss.packet.authentication;
import
org.apache.shardingsphere.database.protocol.opengauss.constant.OpenGaussProtocolVersion;
+import org.apache.shardingsphere.database.protocol.packet.DatabasePacket;
+import
org.apache.shardingsphere.database.protocol.postgresql.packet.identifier.PostgreSQLMessagePacketType;
import
org.apache.shardingsphere.database.protocol.postgresql.payload.PostgreSQLPacketPayload;
+import org.hamcrest.CoreMatchers;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+import java.util.stream.Stream;
+
+import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
@@ -30,40 +39,30 @@ class OpenGaussAuthenticationSCRAMSha256PacketTest {
private final OpenGaussAuthenticationHexData authHexData = new
OpenGaussAuthenticationHexData();
- @Test
- void assertWriteProtocol300Packet() {
+ @ParameterizedTest(name = "{0}")
+ @MethodSource("writeCases")
+ void assertWrite(final String name, final int version, final int
serverIteration, final int expectedWriteBytesCount, final int
expectedServerIterationWriteCount) {
PostgreSQLPacketPayload payload = mock(PostgreSQLPacketPayload.class);
- OpenGaussAuthenticationSCRAMSha256Packet packet = new
OpenGaussAuthenticationSCRAMSha256Packet(OpenGaussProtocolVersion.PROTOCOL_350.getVersion()
- 1, 2048, authHexData, "");
+ DatabasePacket packet = new
OpenGaussAuthenticationSCRAMSha256Packet(version, serverIteration, authHexData,
"");
packet.write(payload);
verify(payload).writeInt4(10);
verify(payload).writeInt4(2);
verify(payload).writeBytes(authHexData.getSalt().getBytes());
verify(payload).writeBytes(authHexData.getNonce().getBytes());
- verify(payload, times(3)).writeBytes(any());
+ verify(payload, times(expectedWriteBytesCount)).writeBytes(any());
+ verify(payload,
times(expectedServerIterationWriteCount)).writeInt4(serverIteration);
}
@Test
- void assertWriteProtocol350Packet() {
- PostgreSQLPacketPayload payload = mock(PostgreSQLPacketPayload.class);
+ void assertGetIdentifier() {
OpenGaussAuthenticationSCRAMSha256Packet packet = new
OpenGaussAuthenticationSCRAMSha256Packet(OpenGaussProtocolVersion.PROTOCOL_350.getVersion(),
2048, authHexData, "");
- packet.write(payload);
- verify(payload).writeInt4(10);
- verify(payload).writeInt4(2);
- verify(payload).writeBytes(authHexData.getSalt().getBytes());
- verify(payload).writeBytes(authHexData.getNonce().getBytes());
- verify(payload, times(2)).writeBytes(any());
+ assertThat(packet.getIdentifier(),
CoreMatchers.is(PostgreSQLMessagePacketType.AUTHENTICATION_REQUEST));
}
- @Test
- void assertWriteProtocol351Packet() {
- PostgreSQLPacketPayload payload = mock(PostgreSQLPacketPayload.class);
- OpenGaussAuthenticationSCRAMSha256Packet packet = new
OpenGaussAuthenticationSCRAMSha256Packet(OpenGaussProtocolVersion.PROTOCOL_351.getVersion(),
10000, authHexData, "");
- packet.write(payload);
- verify(payload).writeInt4(10);
- verify(payload).writeInt4(2);
- verify(payload).writeBytes(authHexData.getSalt().getBytes());
- verify(payload).writeBytes(authHexData.getNonce().getBytes());
- verify(payload).writeInt4(10000);
- verify(payload, times(2)).writeBytes(any());
+ private static Stream<Arguments> writeCases() {
+ return Stream.of(
+ Arguments.of("versionBelow350WritesServerSignature",
OpenGaussProtocolVersion.PROTOCOL_350.getVersion() - 1, 2048, 3, 0),
+ Arguments.of("version350SkipsSignatureAndIteration",
OpenGaussProtocolVersion.PROTOCOL_350.getVersion(), 2048, 2, 0),
+ Arguments.of("version351WritesIterationOnly",
OpenGaussProtocolVersion.PROTOCOL_351.getVersion(), 10000, 2, 1));
}
}