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"));
+    }
+}

Reply via email to