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 ce81563879f Add test cases for data.pipeline.cdc.client.util package
(#37371)
ce81563879f is described below
commit ce81563879facdd82d748db8c9450b28701414f8
Author: Liang Zhang <[email protected]>
AuthorDate: Sat Dec 13 10:45:22 2025 +0800
Add test cases for data.pipeline.cdc.client.util package (#37371)
* Add RequestIdUtilsTest
* Add test cases for data.pipeline.cdc.client.util package
---
.../pipeline/cdc/client/util/RequestIdUtils.java | 6 +-
.../cdc/client/util/RequestIdUtilsTest.java} | 23 +++-----
.../cdc/client/util/ResponseFutureTest.java | 67 ++++++++++++++++++++++
3 files changed, 79 insertions(+), 17 deletions(-)
diff --git
a/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
b/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
index 46cf54c5d59..1382ab0deef 100644
---
a/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
+++
b/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
@@ -23,15 +23,15 @@ import lombok.NoArgsConstructor;
import java.util.UUID;
/**
- * Request id utility class.
+ * Request ID utility class.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class RequestIdUtils {
/**
- * Generate request id.
+ * Generate request ID.
*
- * @return request id.
+ * @return request ID.
*/
public static String generateRequestId() {
return UUID.randomUUID().toString();
diff --git
a/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
b/kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtilsTest.java
similarity index 72%
copy from
kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
copy to
kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtilsTest.java
index 46cf54c5d59..f61e4ad9b6a 100644
---
a/kernel/data-pipeline/scenario/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtils.java
+++
b/kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/RequestIdUtilsTest.java
@@ -17,23 +17,18 @@
package org.apache.shardingsphere.data.pipeline.cdc.client.util;
-import lombok.AccessLevel;
-import lombok.NoArgsConstructor;
+import org.junit.jupiter.api.Test;
import java.util.UUID;
-/**
- * Request id utility class.
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class RequestIdUtils {
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+
+class RequestIdUtilsTest {
- /**
- * Generate request id.
- *
- * @return request id.
- */
- public static String generateRequestId() {
- return UUID.randomUUID().toString();
+ @Test
+ void assertGenerateRequestId() {
+ String actual = RequestIdUtils.generateRequestId();
+ assertThat(UUID.fromString(actual).toString(), is(actual));
}
}
diff --git
a/kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/ResponseFutureTest.java
b/kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/ResponseFutureTest.java
new file mode 100644
index 00000000000..3d1d38280ba
--- /dev/null
+++
b/kernel/data-pipeline/scenario/cdc/client/src/test/java/org/apache/shardingsphere/data/pipeline/cdc/client/util/ResponseFutureTest.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.data.pipeline.cdc.client.util;
+
+import
org.apache.shardingsphere.data.pipeline.cdc.client.context.ClientConnectionContext;
+import
org.apache.shardingsphere.data.pipeline.cdc.client.exception.GetResultTimeoutException;
+import
org.apache.shardingsphere.data.pipeline.cdc.client.exception.ServerResultException;
+import
org.apache.shardingsphere.data.pipeline.cdc.protocol.request.CDCRequest.Type;
+import org.junit.jupiter.api.Test;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.is;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+class ResponseFutureTest {
+
+ @Test
+ void assertWaitResponseResultTimeout() {
+ ClientConnectionContext connectionContext = new
ClientConnectionContext();
+ ResponseFuture responseFuture = new ResponseFuture("foo_req_id",
Type.LOGIN);
+ connectionContext.getResponseFutureMap().put("foo_req_id",
responseFuture);
+ GetResultTimeoutException ex =
assertThrows(GetResultTimeoutException.class, () ->
responseFuture.waitResponseResult(1L, connectionContext));
+ assertThat(ex.getMessage(), is("Get result timeout"));
+
assertFalse(connectionContext.getResponseFutureMap().containsKey("foo_req_id"));
+ }
+
+ @Test
+ void assertWaitResponseResultSuccess() {
+ ClientConnectionContext connectionContext = new
ClientConnectionContext();
+ ResponseFuture responseFuture = new ResponseFuture("foo_req_id",
Type.START_STREAMING);
+ connectionContext.getResponseFutureMap().put("foo_req_id",
responseFuture);
+ responseFuture.setResult("success_result");
+ responseFuture.countDown();
+ Object actualResult = responseFuture.waitResponseResult(1000L,
connectionContext);
+ assertThat(actualResult, is("success_result"));
+
assertFalse(connectionContext.getResponseFutureMap().containsKey("foo_req_id"));
+ }
+
+ @Test
+ void assertWaitResponseResultWithServerError() {
+ ClientConnectionContext connectionContext = new
ClientConnectionContext();
+ ResponseFuture responseFuture = new ResponseFuture("foo_req_id",
Type.STOP_STREAMING);
+ connectionContext.getResponseFutureMap().put("foo_req_id",
responseFuture);
+ responseFuture.setErrorCode("500");
+ responseFuture.setErrorMessage("mock error");
+ responseFuture.countDown();
+ ServerResultException ex = assertThrows(ServerResultException.class,
() -> responseFuture.waitResponseResult(1000L, connectionContext));
+ assertThat(ex.getMessage(), is("Get STOP_STREAMING response failed,
code:500, reason: mock error"));
+
assertFalse(connectionContext.getResponseFutureMap().containsKey("foo_req_id"));
+ }
+}