This is an automated email from the ASF dual-hosted git repository.

zrlw pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.3 by this push:
     new a828eb4f72 Remove dubbo-test in 
dubbo-metrics,dubbo-registry,dubbo-serialization (#15218)
a828eb4f72 is described below

commit a828eb4f72c53db44a69e629e0ae1e3a5b47d970
Author: stellar <[email protected]>
AuthorDate: Mon Jun 23 15:41:42 2025 +0800

    Remove dubbo-test in dubbo-metrics,dubbo-registry,dubbo-serialization 
(#15218)
---
 .../event/SimpleMetricsEventMulticasterTest.java   |  6 ++
 .../dubbo/metrics/model/ApplicationMetricTest.java |  7 ++
 .../metrics/model/sample/ErrorCodeSampleTest.java  |  6 ++
 .../dubbo/monitor/support/MonitorFilterTest.java   |  8 ++
 .../collector/RegistryMetricsCollectorTest.java    | 12 +--
 .../metrics/collector/RegistryMetricsTest.java     |  9 ++-
 dubbo-metrics/pom.xml                              |  8 --
 .../nacos/NacosServiceDiscoveryFactoryTest.java    |  6 ++
 .../registry/nacos/NacosServiceDiscoveryTest.java  |  1 +
 .../registry/zookeeper/ZookeeperRegistryTest.java  | 60 +++++++-------
 .../zookeeper/ZookeeperServiceDiscoveryTest.java   | 94 +++++++++++++++++++++-
 .../zookeeper/util/CuratorFrameworkUtilsTest.java  | 46 ++++++++++-
 dubbo-registry/pom.xml                             |  9 ---
 .../Curator5ZookeeperClientManagerTest.java        |  4 +-
 dubbo-serialization/pom.xml                        |  8 --
 15 files changed, 213 insertions(+), 71 deletions(-)

diff --git 
a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/event/SimpleMetricsEventMulticasterTest.java
 
b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/event/SimpleMetricsEventMulticasterTest.java
index b101d944e4..5e9315b0b5 100644
--- 
a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/event/SimpleMetricsEventMulticasterTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/event/SimpleMetricsEventMulticasterTest.java
@@ -22,6 +22,7 @@ import 
org.apache.dubbo.metrics.listener.AbstractMetricsListener;
 import org.apache.dubbo.metrics.listener.MetricsLifeListener;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -55,6 +56,11 @@ public class SimpleMetricsEventMulticasterTest {
         requestEvent = new TimeCounterEvent(applicationModel, null) {};
     }
 
+    @AfterEach
+    public void destroy() {
+        ApplicationModel.defaultModel().destroy();
+    }
+
     @Test
     void testPublishFinishEvent() {
 
diff --git 
a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/model/ApplicationMetricTest.java
 
b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/model/ApplicationMetricTest.java
index ec2a71597f..17ab698662 100644
--- 
a/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/model/ApplicationMetricTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-api/src/test/java/org/apache/dubbo/metrics/model/ApplicationMetricTest.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.rpc.model.ApplicationModel;
 
 import java.util.Map;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
@@ -101,4 +102,10 @@ class ApplicationMetricTest {
 
     @Test
     void testHashCode() {}
+
+    @AfterEach
+    public void destroy() {
+        ApplicationModel applicationModel = ApplicationModel.defaultModel();
+        applicationModel.destroy();
+    }
 }
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/metrics/model/sample/ErrorCodeSampleTest.java
 
b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/metrics/model/sample/ErrorCodeSampleTest.java
index d571214f92..efb94f783b 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/metrics/model/sample/ErrorCodeSampleTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/metrics/metrics/model/sample/ErrorCodeSampleTest.java
@@ -30,6 +30,7 @@ import org.apache.dubbo.rpc.model.FrameworkModel;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicLong;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Test;
 
 public class ErrorCodeSampleTest {
@@ -70,4 +71,9 @@ public class ErrorCodeSampleTest {
 
         System.out.println(samples);
     }
+
+    @AfterEach
+    public void tearDown() {
+        FrameworkModel.defaultModel().destroy();
+    }
 }
diff --git 
a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/monitor/support/MonitorFilterTest.java
 
b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/monitor/support/MonitorFilterTest.java
index d32f565872..de8f3dd17d 100644
--- 
a/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/monitor/support/MonitorFilterTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-default/src/test/java/org/apache/dubbo/monitor/support/MonitorFilterTest.java
@@ -28,10 +28,12 @@ import org.apache.dubbo.rpc.Result;
 import org.apache.dubbo.rpc.RpcContext;
 import org.apache.dubbo.rpc.RpcException;
 import org.apache.dubbo.rpc.RpcInvocation;
+import org.apache.dubbo.rpc.model.ApplicationModel;
 
 import java.util.Arrays;
 import java.util.List;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 import org.mockito.Mockito;
@@ -240,4 +242,10 @@ class MonitorFilterTest {
         Throwable rpcException = new RpcException();
         monitorFilter.onError(rpcException, serviceInvoker, invocation);
     }
+
+    @AfterEach
+    public void destroy() {
+        ApplicationModel applicationModel = ApplicationModel.defaultModel();
+        applicationModel.destroy();
+    }
 }
diff --git 
a/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsCollectorTest.java
 
b/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsCollectorTest.java
index 442b9a7142..d6a759b600 100644
--- 
a/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsCollectorTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsCollectorTest.java
@@ -30,6 +30,7 @@ import org.apache.dubbo.metrics.registry.event.RegistryEvent;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -37,7 +38,6 @@ import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
-import com.google.common.collect.Lists;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
@@ -75,8 +75,9 @@ class RegistryMetricsCollectorTest {
 
     @Test
     void testRegisterMetrics() {
-
-        RegistryEvent registryEvent = 
RegistryEvent.toRegisterEvent(applicationModel, Lists.newArrayList("reg1"));
+        List<String> registryClusterNames = new ArrayList<>();
+        registryClusterNames.add("reg1");
+        RegistryEvent registryEvent = 
RegistryEvent.toRegisterEvent(applicationModel, registryClusterNames);
         MetricsEventBus.post(registryEvent, () -> {
             List<MetricSample> metricSamples = collector.collect();
             // push success +1 -> other default 0 = APP_LEVEL_KEYS.size()
@@ -94,7 +95,7 @@ class RegistryMetricsCollectorTest {
         Assertions.assertEquals(APP_LEVEL_KEYS.size() + 
REGISTER_LEVEL_KEYS.size() + 5, metricSamples.size());
         long c1 = registryEvent.getTimePair().calc();
 
-        registryEvent = RegistryEvent.toRegisterEvent(applicationModel, 
Lists.newArrayList("reg1"));
+        registryEvent = RegistryEvent.toRegisterEvent(applicationModel, 
registryClusterNames);
         TimePair lastTimePair = registryEvent.getTimePair();
         MetricsEventBus.post(
                 registryEvent,
@@ -145,7 +146,8 @@ class RegistryMetricsCollectorTest {
     void testServicePushMetrics() {
 
         String serviceName = "demo.gameService";
-        List<String> rcNames = Lists.newArrayList("demo1");
+        List<String> rcNames = new ArrayList<>();
+        rcNames.add("demo1");
 
         RegistryEvent registryEvent = 
RegistryEvent.toRsEvent(applicationModel, serviceName, 2, rcNames);
         MetricsEventBus.post(registryEvent, () -> {
diff --git 
a/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsTest.java
 
b/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsTest.java
index db06191028..353e694c14 100644
--- 
a/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsTest.java
+++ 
b/dubbo-metrics/dubbo-metrics-registry/src/test/java/org/apache/dubbo/metrics/registry/metrics/collector/RegistryMetricsTest.java
@@ -28,6 +28,7 @@ import org.apache.dubbo.metrics.registry.event.RegistryEvent;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 import org.apache.dubbo.rpc.model.FrameworkModel;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.NoSuchElementException;
 import java.util.Optional;
@@ -37,7 +38,6 @@ import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ScheduledFuture;
 import java.util.concurrent.TimeUnit;
 
-import com.google.common.collect.Lists;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -292,13 +292,16 @@ public class RegistryMetricsTest {
     }
 
     RegistryEvent registerEvent() {
-        RegistryEvent event = RegistryEvent.toRegisterEvent(applicationModel, 
Lists.newArrayList("reg1"));
+        List<String> registryClusterNames = new ArrayList<>();
+        registryClusterNames.add("reg1");
+        RegistryEvent event = RegistryEvent.toRegisterEvent(applicationModel, 
registryClusterNames);
         event.setAvailable(true);
         return event;
     }
 
     RegistryEvent rsEvent() {
-        List<String> rcNames = Lists.newArrayList("demo1");
+        List<String> rcNames = new ArrayList<>();
+        rcNames.add("demo1");
         RegistryEvent event = RegistryEvent.toRsEvent(applicationModel, 
"TestServiceInterface1", 1, rcNames);
         event.setAvailable(true);
         return event;
diff --git a/dubbo-metrics/pom.xml b/dubbo-metrics/pom.xml
index 2c2692f3f9..7176e2e182 100644
--- a/dubbo-metrics/pom.xml
+++ b/dubbo-metrics/pom.xml
@@ -42,12 +42,4 @@
     <skip_maven_deploy>false</skip_maven_deploy>
   </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.dubbo</groupId>
-      <artifactId>dubbo-test-check</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
 </project>
diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactoryTest.java
 
b/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactoryTest.java
index 271d829113..b70e46ef3b 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactoryTest.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactoryTest.java
@@ -21,6 +21,7 @@ import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.registry.client.ServiceDiscovery;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -49,4 +50,9 @@ class NacosServiceDiscoveryFactoryTest {
 
         Assertions.assertTrue(discovery instanceof NacosServiceDiscovery);
     }
+
+    @AfterEach
+    public void tearDown() {
+        ApplicationModel.defaultModel().destroy();
+    }
 }
diff --git 
a/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryTest.java
 
b/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryTest.java
index 97b8a3e540..e04e688766 100644
--- 
a/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryTest.java
+++ 
b/dubbo-registry/dubbo-registry-nacos/src/test/java/org/apache/dubbo/registry/nacos/NacosServiceDiscoveryTest.java
@@ -130,6 +130,7 @@ class NacosServiceDiscoveryTest {
 
     @AfterEach
     public void destroy() throws Exception {
+        ApplicationModel.defaultModel().destroy();
         nacosServiceDiscovery.destroy();
     }
 
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
index 6ca5962185..b11dbd8936 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperRegistryTest.java
@@ -17,10 +17,9 @@
 package org.apache.dubbo.registry.zookeeper;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.status.Status;
 import org.apache.dubbo.registry.NotifyListener;
-import org.apache.dubbo.registry.Registry;
-import org.apache.dubbo.registry.status.RegistryStatusChecker;
+import org.apache.dubbo.remoting.zookeeper.curator5.ZookeeperClient;
+import org.apache.dubbo.remoting.zookeeper.curator5.ZookeeperClientManager;
 import org.apache.dubbo.rpc.RpcException;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
@@ -29,39 +28,51 @@ import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.CountDownLatch;
 
+import com.google.common.collect.Lists;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.not;
-import static org.hamcrest.CoreMatchers.nullValue;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.containsString;
 import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 class ZookeeperRegistryTest {
     private static String zookeeperConnectionAddress1;
     private ZookeeperRegistry zookeeperRegistry;
     private String service = "org.apache.dubbo.test.injvmServie";
-    private URL serviceUrl = URL.valueOf("zookeeper://zookeeper/" + service + 
"?notify=false&methods=test1,test2");
+    private String url = "zookeeper://zookeeper/" + service + 
"?notify=false&methods=test1,test2";
+    private URL serviceUrl = URL.valueOf(url);
     private URL anyUrl = URL.valueOf("zookeeper://zookeeper/*");
     private URL registryUrl;
     private ZookeeperRegistryFactory zookeeperRegistryFactory;
     private NotifyListener listener;
 
+    // mock object
+    private static ZookeeperClientManager mockZookeeperClientManager;
+    private static ZookeeperClient mockZookeeperClient;
+
     @BeforeAll
     public static void beforeAll() {
-        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress1 = "zookeeper://localhost:" + "2181";
     }
 
     @BeforeEach
     public void setUp() throws Exception {
+        mockZookeeperClientManager = mock(ZookeeperClientManager.class);
+        mockZookeeperClient = mock(ZookeeperClient.class);
         this.registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         zookeeperRegistryFactory = new 
ZookeeperRegistryFactory(ApplicationModel.defaultModel());
+        
zookeeperRegistryFactory.setZookeeperTransporter(mockZookeeperClientManager);
+        
when(mockZookeeperClientManager.connect(registryUrl)).thenReturn(mockZookeeperClient);
         this.zookeeperRegistry = (ZookeeperRegistry) 
zookeeperRegistryFactory.createRegistry(registryUrl);
     }
 
@@ -105,6 +116,7 @@ class ZookeeperRegistryTest {
     @Test
     void testAvailable() {
         zookeeperRegistry.register(serviceUrl);
+        when(mockZookeeperClient.isConnected()).thenReturn(true);
         assertThat(zookeeperRegistry.isAvailable(), is(true));
 
         zookeeperRegistry.destroy();
@@ -113,6 +125,7 @@ class ZookeeperRegistryTest {
 
     @Test
     void testLookup() {
+        
when(mockZookeeperClient.getChildren(any())).thenReturn(Lists.newArrayList(url));
         List<URL> lookup = zookeeperRegistry.lookup(serviceUrl);
         assertThat(lookup.size(), is(1));
 
@@ -134,36 +147,21 @@ class ZookeeperRegistryTest {
     @Test
     void testLookupWithException() {
         URL errorUrl = URL.valueOf("multicast://0.0.0.0/");
+        when(mockZookeeperClient.getChildren(any())).thenThrow(new 
IllegalStateException());
         Assertions.assertThrows(RpcException.class, () -> 
zookeeperRegistry.lookup(errorUrl));
     }
 
-    @Disabled
-    @Test
-    /*
-     This UT is unstable, consider remove it later.
-     @see https://github.com/apache/dubbo/issues/1787
-    */
-    public void testStatusChecker() {
-        RegistryStatusChecker registryStatusChecker = new 
RegistryStatusChecker(ApplicationModel.defaultModel());
-        Status status = registryStatusChecker.check();
-        assertThat(status.getLevel(), is(Status.Level.UNKNOWN));
-
-        Registry registry = zookeeperRegistryFactory.getRegistry(registryUrl);
-        assertThat(registry, not(nullValue()));
-
-        status = registryStatusChecker.check();
-        assertThat(status.getLevel(), is(Status.Level.ERROR));
-
-        registry.register(serviceUrl);
-        status = registryStatusChecker.check();
-        assertThat(status.getLevel(), is(Status.Level.OK));
-    }
-
     @Test
     void testSubscribeAnyValue() throws InterruptedException {
         final CountDownLatch latch = new CountDownLatch(1);
         zookeeperRegistry.register(serviceUrl);
         zookeeperRegistry.subscribe(anyUrl, urls -> latch.countDown());
+        doAnswer(invocationOnMock -> {
+                    latch.countDown();
+                    return null;
+                })
+                .when(mockZookeeperClient)
+                .create(any(), anyBoolean(), anyBoolean());
         zookeeperRegistry.register(serviceUrl);
         latch.await();
     }
@@ -176,6 +174,7 @@ class ZookeeperRegistryTest {
 
     @Test
     void testDoRegisterWithException() {
+        doThrow(new 
IllegalStateException()).when(mockZookeeperClient).create(any(), anyBoolean(), 
anyBoolean());
         Assertions.assertThrows(RpcException.class, () -> {
             URL errorUrl = URL.valueOf("multicast://0.0.0.0/");
             zookeeperRegistry.doRegister(errorUrl);
@@ -184,6 +183,7 @@ class ZookeeperRegistryTest {
 
     @Test
     void testDoUnregisterWithException() {
+        doThrow(new 
IllegalStateException()).when(mockZookeeperClient).delete(any());
         Assertions.assertThrows(RpcException.class, () -> {
             URL errorUrl = URL.valueOf("multicast://0.0.0.0/");
             zookeeperRegistry.doUnregister(errorUrl);
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
index a9405e9392..3243a30ea3 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryTest.java
@@ -24,22 +24,40 @@ import 
org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
 import 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
 import org.apache.dubbo.rpc.model.ApplicationModel;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 
+import com.google.common.collect.Lists;
+import org.apache.curator.CuratorZookeeperClient;
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.framework.imps.CuratorFrameworkState;
+import org.apache.curator.x.discovery.ServiceCache;
+import org.apache.curator.x.discovery.ServiceCacheBuilder;
+import org.apache.curator.x.discovery.ServiceDiscovery;
+import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.condition.DisabledForJreRange;
 import org.junit.jupiter.api.condition.JRE;
+import org.mockito.MockedStatic;
 import org.mockito.internal.util.collections.Sets;
 
 import static java.util.Arrays.asList;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 /**
  * {@link ZookeeperServiceDiscovery} Test
@@ -57,14 +75,54 @@ class ZookeeperServiceDiscoveryTest {
 
     private ZookeeperServiceDiscovery discovery;
     private static String zookeeperConnectionAddress1;
+    private static MockedStatic<CuratorFrameworkFactory> 
curatorFrameworkFactoryMockedStatic;
+    private static MockedStatic<ServiceDiscoveryBuilder> 
serviceDiscoveryBuilderMockedStatic;
+
+    private CuratorFramework mockCuratorFramework;
+    private CuratorZookeeperClient mockCuratorZookeeperClient;
+    private ServiceDiscoveryBuilder mockServiceDiscoveryBuilder;
+    private ServiceDiscovery mockServiceDiscovery;
+    private ServiceCacheBuilder mockServiceCacheBuilder;
+    private ServiceCache mockServiceCache;
 
     @BeforeAll
     public static void beforeAll() {
-        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress1 = "zookeeper://localhost:" + "2181";
     }
 
     @BeforeEach
     public void init() throws Exception {
+        // mock begin
+        // create mock bean begin
+        CuratorFrameworkFactory.Builder realBuilder = 
CuratorFrameworkFactory.builder();
+        CuratorFrameworkFactory.Builder spyBuilder = spy(realBuilder);
+        curatorFrameworkFactoryMockedStatic = 
mockStatic(CuratorFrameworkFactory.class);
+        curatorFrameworkFactoryMockedStatic
+                .when(CuratorFrameworkFactory::builder)
+                .thenReturn(spyBuilder);
+        serviceDiscoveryBuilderMockedStatic = 
mockStatic(ServiceDiscoveryBuilder.class);
+        mockServiceDiscoveryBuilder = mock(ServiceDiscoveryBuilder.class);
+        mockServiceDiscovery = mock(ServiceDiscovery.class);
+        mockServiceCacheBuilder = mock(ServiceCacheBuilder.class);
+        mockCuratorFramework = mock(CuratorFramework.class);
+        mockServiceCache = mock(ServiceCache.class);
+
+        serviceDiscoveryBuilderMockedStatic
+                .when(() -> ServiceDiscoveryBuilder.builder(any()))
+                .thenReturn(mockServiceDiscoveryBuilder);
+        
when(mockServiceDiscoveryBuilder.client(any())).thenReturn(mockServiceDiscoveryBuilder);
+        
when(mockServiceDiscoveryBuilder.basePath(any())).thenReturn(mockServiceDiscoveryBuilder);
+        
when(mockServiceDiscoveryBuilder.build()).thenReturn(mockServiceDiscovery);
+        
when(mockServiceDiscovery.serviceCacheBuilder()).thenReturn(mockServiceCacheBuilder);
+        
when(mockServiceCacheBuilder.name(any())).thenReturn(mockServiceCacheBuilder);
+        when(mockServiceCacheBuilder.build()).thenReturn(mockServiceCache);
+        doReturn(mockCuratorFramework).when(spyBuilder).build();
+        mockCuratorZookeeperClient = mock(CuratorZookeeperClient.class);
+        // mock default is started. If method need other status please replace 
in test method.
+        
when(mockCuratorFramework.getZookeeperClient()).thenReturn(mockCuratorZookeeperClient);
+        
when(mockCuratorFramework.getState()).thenReturn(CuratorFrameworkState.STARTED);
+        when(mockCuratorZookeeperClient.isConnected()).thenReturn(true);
+
         this.registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         ApplicationModel applicationModel = ApplicationModel.defaultModel();
         applicationModel.getApplicationConfigManager().setApplication(new 
ApplicationConfig(SERVICE_NAME));
@@ -78,7 +136,7 @@ class ZookeeperServiceDiscoveryTest {
     }
 
     @Test
-    void testRegistration() throws InterruptedException {
+    void testRegistration() throws Exception {
 
         CountDownLatch latch = new CountDownLatch(1);
 
@@ -98,9 +156,20 @@ class ZookeeperServiceDiscoveryTest {
 
         discovery.register(URL.valueOf("dubbo://1.1.2.3:20880/DemoService"));
         discovery.register();
-        serviceInstances = discovery.getInstances(SERVICE_NAME);
 
         DefaultServiceInstance serviceInstance = (DefaultServiceInstance) 
discovery.getLocalInstance();
+        List<org.apache.curator.x.discovery.ServiceInstance> lists =
+                
Lists.newArrayList(org.apache.curator.x.discovery.ServiceInstance.builder()
+                        .name(SERVICE_NAME)
+                        .address(
+                                
URL.valueOf("dubbo://1.1.2.3:20880/DemoService").getHost())
+                        .port(20880)
+                        .payload(new ZookeeperInstance(
+                                "", serviceInstance.getServiceName(), 
serviceInstance.getMetadata()))
+                        .build());
+        when(mockServiceDiscovery.queryForInstances(any())).thenReturn(lists);
+        serviceInstances = discovery.getInstances(SERVICE_NAME);
+
         assertTrue(serviceInstances.contains(serviceInstance));
         assertEquals(asList(serviceInstance), serviceInstances);
 
@@ -111,14 +180,33 @@ class ZookeeperServiceDiscoveryTest {
         discovery.register(URL.valueOf("dubbo://1.1.2.3:20880/DemoService1"));
         discovery.update();
 
+        lists = 
Lists.newArrayList(org.apache.curator.x.discovery.ServiceInstance.builder()
+                .name(SERVICE_NAME)
+                
.address(URL.valueOf("dubbo://1.1.2.3:20880/DemoService").getHost())
+                .port(20880)
+                .payload(new ZookeeperInstance("", 
serviceInstance.getServiceName(), metadata))
+                .build());
+
+        when(mockServiceDiscovery.queryForInstances(any())).thenReturn(lists);
         serviceInstances = discovery.getInstances(SERVICE_NAME);
 
         assertEquals(serviceInstance, serviceInstances.get(0));
 
         discovery.unregister();
 
+        when(mockServiceDiscovery.queryForInstances(any())).thenReturn(new 
ArrayList<>());
         serviceInstances = discovery.getInstances(SERVICE_NAME);
 
         assertTrue(serviceInstances.isEmpty());
     }
+
+    @AfterAll
+    public static void afterAll() throws Exception {
+        if (curatorFrameworkFactoryMockedStatic != null) {
+            curatorFrameworkFactoryMockedStatic.close();
+        }
+        if (serviceDiscoveryBuilderMockedStatic != null) {
+            serviceDiscoveryBuilderMockedStatic.close();
+        }
+    }
 }
diff --git 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
index 40b233c9be..aacfc2610f 100644
--- 
a/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
+++ 
b/dubbo-registry/dubbo-registry-zookeeper/src/test/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtilsTest.java
@@ -27,16 +27,27 @@ import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.curator.CuratorZookeeperClient;
 import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.framework.imps.CuratorFrameworkState;
 import org.apache.curator.x.discovery.ServiceDiscovery;
+import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
+import org.mockito.MockedStatic;
 import org.mockito.Mockito;
 
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.EXPORTED_SERVICES_REVISION_PROPERTY_NAME;
 import static 
org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_STORAGE_TYPE_PROPERTY_NAME;
 import static 
org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.ROOT_PATH;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
 
 /**
  * {@link CuratorFrameworkUtils} Test
@@ -45,15 +56,40 @@ class CuratorFrameworkUtilsTest {
     private static URL registryUrl;
     private static String zookeeperConnectionAddress1;
     private static MetadataReport metadataReport;
+    private static MockedStatic<CuratorFrameworkFactory> 
curatorFrameworkFactoryMockedStatic;
+    CuratorFrameworkFactory.Builder spyBuilder = 
CuratorFrameworkFactory.builder();
+    private CuratorFramework mockCuratorFramework;
+    private CuratorZookeeperClient mockCuratorZookeeperClient;
 
     @BeforeAll
     public static void init() throws Exception {
-        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress1 = "zookeeper://localhost:" + "2181";
 
         registryUrl = URL.valueOf(zookeeperConnectionAddress1);
         registryUrl.setScopeModel(ApplicationModel.defaultModel());
 
         metadataReport = Mockito.mock(MetadataReport.class);
+
+        // mock begin
+        // create mock bean begin
+        CuratorFrameworkFactory.Builder realBuilder = 
CuratorFrameworkFactory.builder();
+        CuratorFrameworkFactory.Builder spyBuilder = spy(realBuilder);
+
+        curatorFrameworkFactoryMockedStatic = 
mockStatic(CuratorFrameworkFactory.class);
+        curatorFrameworkFactoryMockedStatic
+                .when(CuratorFrameworkFactory::builder)
+                .thenReturn(spyBuilder);
+    }
+
+    @BeforeEach
+    public void setUp() throws Exception {
+        mockCuratorFramework = mock(CuratorFramework.class);
+        doReturn(mockCuratorFramework).when(spyBuilder).build();
+        mockCuratorZookeeperClient = mock(CuratorZookeeperClient.class);
+        // mock default is started. If method need other status please replace 
in test method.
+        
when(mockCuratorFramework.getZookeeperClient()).thenReturn(mockCuratorZookeeperClient);
+        
when(mockCuratorFramework.getState()).thenReturn(CuratorFrameworkState.STARTED);
+        when(mockCuratorZookeeperClient.isConnected()).thenReturn(true);
     }
 
     @Test
@@ -70,7 +106,6 @@ class CuratorFrameworkUtilsTest {
         ServiceDiscovery<ZookeeperInstance> discovery =
                 CuratorFrameworkUtils.buildServiceDiscovery(curatorFramework, 
ROOT_PATH.getParameterValue(registryUrl));
         Assertions.assertNotNull(discovery);
-        discovery.close();
         curatorFramework.getZookeeperClient().close();
     }
 
@@ -109,4 +144,11 @@ class CuratorFrameworkUtilsTest {
         Assertions.assertNotNull(serviceInstances);
         Assertions.assertEquals(serviceInstances.get(0), dubboServiceInstance);
     }
+
+    @AfterAll
+    public static void afterAll() throws Exception {
+        if (curatorFrameworkFactoryMockedStatic != null) {
+            curatorFrameworkFactoryMockedStatic.close();
+        }
+    }
 }
diff --git a/dubbo-registry/pom.xml b/dubbo-registry/pom.xml
index 28008cdf8e..daf7221bf6 100644
--- a/dubbo-registry/pom.xml
+++ b/dubbo-registry/pom.xml
@@ -37,13 +37,4 @@
   <properties>
     <skip_maven_deploy>false</skip_maven_deploy>
   </properties>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.dubbo</groupId>
-      <artifactId>dubbo-test-check</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
 </project>
diff --git 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientManagerTest.java
 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientManagerTest.java
index 1522792e3e..b011f08467 100644
--- 
a/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientManagerTest.java
+++ 
b/dubbo-remoting/dubbo-remoting-zookeeper-curator5/src/test/java/org/apache/dubbo/remoting/zookeeper/curator5/Curator5ZookeeperClientManagerTest.java
@@ -32,13 +32,12 @@ import static 
org.mockito.Mockito.mockConstructionWithAnswer;
 
 class Curator5ZookeeperClientManagerTest {
     private ZookeeperClient zookeeperClient;
-    private ZookeeperClientManager zookeeperClientManager;
     private static MockedConstruction<Curator5ZookeeperClient> 
mockedCurator5ZookeeperClientConstruction;
     private static String zookeeperConnectionAddress1;
 
     @BeforeAll
     public static void beforeAll() {
-        zookeeperConnectionAddress1 = 
System.getProperty("zookeeper.connection.address.1");
+        zookeeperConnectionAddress1 = "zookeeper://127.0.0.1:2181";
         Curator5ZookeeperClient mockCurator5ZookeeperClient = 
mock(Curator5ZookeeperClient.class);
         mockedCurator5ZookeeperClientConstruction =
                 mockConstructionWithAnswer(Curator5ZookeeperClient.class, 
invocationOnMock -> invocationOnMock
@@ -49,7 +48,6 @@ class Curator5ZookeeperClientManagerTest {
     @BeforeEach
     public void setUp() {
         zookeeperClient = new 
ZookeeperClientManager().connect(URL.valueOf(zookeeperConnectionAddress1 + 
"/service"));
-        zookeeperClientManager = new ZookeeperClientManager();
     }
 
     @Test
diff --git a/dubbo-serialization/pom.xml b/dubbo-serialization/pom.xml
index 079f6710ec..063eccd564 100644
--- a/dubbo-serialization/pom.xml
+++ b/dubbo-serialization/pom.xml
@@ -36,12 +36,4 @@
     <skip_maven_deploy>false</skip_maven_deploy>
   </properties>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.dubbo</groupId>
-      <artifactId>dubbo-test-check</artifactId>
-      <version>${project.parent.version}</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
 </project>


Reply via email to