You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/02 08:24:07 UTC

[dubbo] 02/02: Fix uts

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

albumenj pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit d183d9b035b19c260d03a612e23eeff47fbd1278
Author: Albumen Kevin <jh...@gmail.com>
AuthorDate: Thu Sep 2 16:23:16 2021 +0800

    Fix uts
---
 .../org/apache/dubbo/config/ReferenceConfig.java   |   2 +
 .../apache/dubbo/config/ReferenceConfigTest.java   |  91 +++---------------
 .../registry/integration/RegistryProtocolTest.java | 106 ++++++++++-----------
 .../dubbo/rpc/protocol/grpc/GrpcProtocolTest.java  |   4 +-
 4 files changed, 67 insertions(+), 136 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index 5b1cd75..97e52f6 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -421,6 +421,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
                 if (StringUtils.isEmpty(url.getPath())) {
                     url = url.setPath(interfaceName);
                 }
+                url = url.setScopeModel(getScopeModel());
                 url = url.setServiceModel(consumerModel);
                 if (UrlUtils.isRegistry(url)) {
                     urls.add(url.putAttribute(REFER_KEY, referenceParameters));
@@ -445,6 +446,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
                 if (monitorUrl != null) {
                     u = u.putAttribute(MONITOR_KEY, monitorUrl);
                 }
+                u = u.setScopeModel(getScopeModel());
                 u = u.setServiceModel(consumerModel);
                 urls.add(u.putAttribute(REFER_KEY, referenceParameters));
             }
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
index ed45fda..fa64410 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
@@ -28,9 +28,6 @@ import org.apache.dubbo.config.annotation.Reference;
 import org.apache.dubbo.config.api.DemoService;
 import org.apache.dubbo.config.bootstrap.DubboBootstrap;
 import org.apache.dubbo.config.provider.impl.DemoServiceImpl;
-
-import org.apache.dubbo.metadata.report.MetadataReport;
-import org.apache.dubbo.metadata.report.MetadataReportInstance;
 import org.apache.dubbo.registry.client.migration.MigrationInvoker;
 import org.apache.dubbo.rpc.Exporter;
 import org.apache.dubbo.rpc.ProxyFactory;
@@ -480,9 +477,6 @@ public class ReferenceConfigTest {
         Assertions.assertEquals("value2", url.getParameter("key2"));
 
         dubboBootstrap.stop();
-
-        applicationModelMockedStatic.closeOnDemand();
-        metadataReportInstanceMockedStatic.closeOnDemand();
     }
 
     /**
@@ -498,10 +492,7 @@ public class ReferenceConfigTest {
         referenceConfig.setLazy(false);
         referenceConfig.setInjvm(false);
 
-        DubboBootstrap.getInstance()
-            .application("application1")
-            .initialize();
-        referenceConfig.setBootstrap(DubboBootstrap.getInstance());
+        DubboBootstrap dubboBootstrap = DubboBootstrap.newInstance(FrameworkModel.defaultModel());
 
         ApplicationConfig applicationConfig = new ApplicationConfig();
         applicationConfig.setName("application1");
@@ -510,35 +501,6 @@ public class ReferenceConfigTest {
         parameters.put("key2", "value2");
         applicationConfig.setParameters(parameters);
 
-        ConfigManager configManager = mock(ConfigManager.class);
-        Environment environment = mock(Environment.class);
-        CompositeConfiguration compositeConfiguration = mock(CompositeConfiguration.class);
-        Configuration dynamicGlobalConfiguration = mock(Configuration.class);
-        ServiceRepository serviceRepository = mock(ServiceRepository.class);
-        ConsumerModel consumerModel = mock(ConsumerModel.class);
-
-        when(configManager.getApplicationOrElseThrow()).thenReturn(applicationConfig);
-
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-        applicationModelMockedStatic.when(ApplicationModel::getServiceRepository).thenReturn(serviceRepository);
-        when(environment.getConfiguration()).thenReturn(compositeConfiguration);
-        when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
-        when(compositeConfiguration.convert(Boolean.class, ENABLE_CONFIGURATION_LISTEN, true))
-            .thenReturn(true);
-
-        MockedStatic<MetadataReportInstance> metadataReportInstanceMockedStatic =
-            Mockito.mockStatic(MetadataReportInstance.class);
-
-        MetadataReport metadataReport = mock(MetadataReport.class);
-        metadataReportInstanceMockedStatic.when(() -> MetadataReportInstance.getMetadataReport("default"))
-            .thenReturn(metadataReport);
-
-
-        when(serviceRepository.lookupReferredService("org.apache.dubbo.config.api.DemoService"))
-            .thenReturn(consumerModel);
-
         referenceConfig.refreshed.set(true);
         referenceConfig.setInterface(DemoService.class);
         referenceConfig.getInterfaceClass();
@@ -550,11 +512,15 @@ public class ReferenceConfigTest {
 
         referenceConfig.setRegistry(registry);
 
+        dubboBootstrap
+            .application(applicationConfig)
+            .reference(referenceConfig)
+            .initialize();
+
         referenceConfig.init();
         Assertions.assertTrue(referenceConfig.getInvoker() instanceof MigrationInvoker);
 
-        applicationModelMockedStatic.closeOnDemand();
-        metadataReportInstanceMockedStatic.closeOnDemand();
+        dubboBootstrap.destroy();
     }
 
     /**
@@ -570,10 +536,7 @@ public class ReferenceConfigTest {
         referenceConfig.setLazy(false);
         referenceConfig.setInjvm(false);
 
-        DubboBootstrap.getInstance()
-            .application("application1")
-            .initialize();
-        referenceConfig.setBootstrap(DubboBootstrap.getInstance());
+        DubboBootstrap dubboBootstrap = DubboBootstrap.newInstance(FrameworkModel.defaultModel());
 
         ApplicationConfig applicationConfig = new ApplicationConfig();
         applicationConfig.setName("application1");
@@ -582,46 +545,22 @@ public class ReferenceConfigTest {
         parameters.put("key2", "value2");
         applicationConfig.setParameters(parameters);
 
-        ConfigManager configManager = mock(ConfigManager.class);
-        Environment environment = mock(Environment.class);
-        CompositeConfiguration compositeConfiguration = mock(CompositeConfiguration.class);
-        Configuration dynamicGlobalConfiguration = mock(Configuration.class);
-        ServiceRepository serviceRepository = mock(ServiceRepository.class);
-        ConsumerModel consumerModel = mock(ConsumerModel.class);
-
-        when(configManager.getApplicationOrElseThrow()).thenReturn(applicationConfig);
-
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-        applicationModelMockedStatic.when(ApplicationModel::getServiceRepository).thenReturn(serviceRepository);
-        when(environment.getConfiguration()).thenReturn(compositeConfiguration);
-        when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
-        when(compositeConfiguration.convert(Boolean.class, ENABLE_CONFIGURATION_LISTEN, true))
-            .thenReturn(true);
-
-        MockedStatic<MetadataReportInstance> metadataReportInstanceMockedStatic =
-            Mockito.mockStatic(MetadataReportInstance.class);
-
-        MetadataReport metadataReport = mock(MetadataReport.class);
-        metadataReportInstanceMockedStatic.when(() -> MetadataReportInstance.getMetadataReport("default"))
-            .thenReturn(metadataReport);
-
-
-        when(serviceRepository.lookupReferredService("org.apache.dubbo.config.api.DemoService"))
-            .thenReturn(consumerModel);
-
         referenceConfig.refreshed.set(true);
         referenceConfig.setInterface(DemoService.class);
         referenceConfig.getInterfaceClass();
         referenceConfig.setCheck(false);
 
         referenceConfig.setUrl(registryUrl);
+
+        dubboBootstrap
+            .application(applicationConfig)
+            .reference(referenceConfig)
+            .initialize();
+
         referenceConfig.init();
         Assertions.assertTrue(referenceConfig.getInvoker() instanceof MigrationInvoker);
+        dubboBootstrap.destroy();
 
-        applicationModelMockedStatic.closeOnDemand();
-        metadataReportInstanceMockedStatic.closeOnDemand();
     }
 
 
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java
index 9f1e635..14e42e9 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/integration/RegistryProtocolTest.java
@@ -35,10 +35,10 @@ import org.apache.dubbo.rpc.cluster.support.FailoverCluster;
 import org.apache.dubbo.rpc.cluster.support.MergeableCluster;
 import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterWrapper;
 import org.apache.dubbo.rpc.model.ApplicationModel;
+
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
-import org.mockito.MockedStatic;
 import org.mockito.Mockito;
 
 import java.io.IOException;
@@ -47,10 +47,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;
+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;
-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;
 import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;
 import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;
 import static org.apache.dubbo.registry.Constants.ENABLE_CONFIGURATION_LISTEN;
@@ -59,16 +59,16 @@ import static org.apache.dubbo.remoting.Constants.CHECK_KEY;
 import static org.apache.dubbo.rpc.cluster.Constants.CONSUMER_URL_KEY;
 import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
 
 public class RegistryProtocolTest {
 
     @AfterEach
     public void tearDown() throws IOException {
         Mockito.framework().clearInlineMocks();
+        ApplicationModel.defaultModel().destroy();
     }
 
     /**
@@ -92,10 +92,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -117,7 +113,14 @@ public class RegistryProtocolTest {
         Registry registry = mock(Registry.class);
 
         RegistryProtocol registryProtocol = new RegistryProtocol();
-        registryProtocol.setRegistryFactory(registryFactory);
+
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryFactory> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryFactory.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getAdaptiveExtension()).thenReturn(registryFactory);
+        url = url.setScopeModel(applicationModel);
+
 
         when(registryFactory.getRegistry(registryProtocol.getRegistryUrl(url))).thenReturn(registry);
 
@@ -135,8 +138,6 @@ public class RegistryProtocolTest {
         Assertions.assertEquals(parameters.get(REGISTER_IP_KEY), consumerUrl.getHost());
         Assertions.assertFalse(consumerUrl.getAttributes().containsKey(REFER_KEY));
         Assertions.assertEquals("value1", consumerUrl.getAttribute("key1"));
-
-        applicationModelMockedStatic.closeOnDemand();
     }
 
     /**
@@ -160,10 +161,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -182,10 +179,16 @@ public class RegistryProtocolTest {
         URL url = serviceConfigURL.addAttributes(attributes);
 
         RegistryFactory registryFactory = mock(RegistryFactory.class);
-        Registry registry = mock(Registry.class);
 
         RegistryProtocol registryProtocol = new RegistryProtocol();
-        registryProtocol.setRegistryFactory(registryFactory);
+        Registry registry = mock(Registry.class);
+
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryFactory> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryFactory.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getAdaptiveExtension()).thenReturn(registryFactory);
+        url = url.setScopeModel(applicationModel);
 
         when(registryFactory.getRegistry(registryProtocol.getRegistryUrl(url))).thenReturn(registry);
 
@@ -204,7 +207,6 @@ public class RegistryProtocolTest {
         Assertions.assertFalse(consumerUrl.getAttributes().containsKey(REFER_KEY));
         Assertions.assertEquals("value1", consumerUrl.getAttribute("key1"));
 
-        applicationModelMockedStatic.closeOnDemand();
     }
 
     /**
@@ -232,10 +234,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -255,7 +253,12 @@ public class RegistryProtocolTest {
         Registry registry = mock(Registry.class);
 
         RegistryProtocol registryProtocol = new RegistryProtocol();
-        registryProtocol.setRegistryFactory(registryFactory);
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryFactory> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryFactory.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getAdaptiveExtension()).thenReturn(registryFactory);
+        url = url.setScopeModel(applicationModel);
 
         when(registryFactory.getRegistry(registryProtocol.getRegistryUrl(url))).thenReturn(registry);
 
@@ -265,8 +268,6 @@ public class RegistryProtocolTest {
         Assertions.assertTrue(((MigrationInvoker<?>) invoker).getCluster() instanceof MockClusterWrapper);
         Assertions.assertTrue(
             ((MockClusterWrapper) ((MigrationInvoker<?>) invoker).getCluster()).getCluster() instanceof FailoverCluster);
-
-        applicationModelMockedStatic.closeOnDemand();
     }
 
     /**
@@ -292,10 +293,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -317,7 +314,12 @@ public class RegistryProtocolTest {
         Registry registry = mock(Registry.class);
 
         RegistryProtocol registryProtocol = new RegistryProtocol();
-        registryProtocol.setRegistryFactory(registryFactory);
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryFactory> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryFactory.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getAdaptiveExtension()).thenReturn(registryFactory);
+        url = url.setScopeModel(applicationModel);
 
         when(registryFactory.getRegistry(registryProtocol.getRegistryUrl(url))).thenReturn(registry);
 
@@ -330,7 +332,6 @@ public class RegistryProtocolTest {
         Assertions.assertTrue(
             ((MockClusterWrapper) ((MigrationInvoker<?>) invoker).getCluster()).getCluster() instanceof MergeableCluster);
 
-        applicationModelMockedStatic.closeOnDemand();
     }
 
     /**
@@ -356,10 +357,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -377,7 +374,6 @@ public class RegistryProtocolTest {
         attributes.put(REFER_KEY, refer);
         URL url = serviceConfigURL.addAttributes(attributes);
 
-        RegistryProtocol registryProtocol = new RegistryProtocol();
         MigrationInvoker<?> clusterInvoker = mock(MigrationInvoker.class);
 
         Map<String, Object> consumerAttribute = new HashMap<>(url.getAttributes());
@@ -393,19 +389,18 @@ public class RegistryProtocolTest {
         MigrationRuleListener migrationRuleListener = mock(MigrationRuleListener.class);
         List<RegistryProtocolListener> registryProtocolListeners = new ArrayList<>();
         registryProtocolListeners.add(migrationRuleListener);
-        MockedStatic<ExtensionLoader> extensionLoaderMockedStatic = mockStatic(ExtensionLoader.class);
-        ExtensionLoader extensionLoaderForRegistryProtocolListener = mock(ExtensionLoader.class);
-        when(ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class))
-            .thenReturn(extensionLoaderForRegistryProtocolListener);
-        when(extensionLoaderForRegistryProtocolListener.getActivateExtension(url, "registry.protocol.listener"))
+
+        RegistryProtocol registryProtocol = new RegistryProtocol();
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryProtocolListener> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryProtocolListener.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getActivateExtension(url, "registry.protocol.listener"))
             .thenReturn(registryProtocolListeners);
+        url = url.setScopeModel(applicationModel);
 
         registryProtocol.interceptInvoker(clusterInvoker, url, consumerUrl, url);
         verify(migrationRuleListener, times(1)).onRefer(registryProtocol, clusterInvoker, consumerUrl, url);
-
-        extensionLoaderMockedStatic.closeOnDemand();
-        applicationModelMockedStatic.closeOnDemand();
-
     }
 
 
@@ -433,10 +428,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -472,7 +463,6 @@ public class RegistryProtocolTest {
         registryProtocol.interceptInvoker(clusterInvoker, url, consumerUrl, url);
 
         Assertions.assertEquals(1, CountRegistryProtocolListener.getReferCounter().get());
-        applicationModelMockedStatic.closeOnDemand();
     }
 
     /**
@@ -496,10 +486,6 @@ public class RegistryProtocolTest {
         when(environment.getConfiguration()).thenReturn(compositeConfiguration);
         when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration);
 
-        MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class);
-        applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager);
-        applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment);
-
         Map<String, String> parameters = new HashMap<>();
         parameters.put(INTERFACE_KEY, DemoService.class.getName());
         parameters.put("registry", "zookeeper");
@@ -520,8 +506,14 @@ public class RegistryProtocolTest {
         RegistryFactory registryFactory = mock(RegistryFactory.class);
         Registry registry = mock(Registry.class);
 
+        ApplicationModel applicationModel = Mockito.spy(ApplicationModel.defaultModel());
+        applicationModel.getApplicationConfigManager().setApplication(new ApplicationConfig("application1"));
+        ExtensionLoader<RegistryFactory> extensionLoaderMock = mock(ExtensionLoader.class);
+        Mockito.when(applicationModel.getExtensionLoader(RegistryFactory.class)).thenReturn(extensionLoaderMock);
+        Mockito.when(extensionLoaderMock.getAdaptiveExtension()).thenReturn(registryFactory);
+        url = url.setScopeModel(applicationModel);
+
         RegistryProtocol registryProtocol = new RegistryProtocol();
-        registryProtocol.setRegistryFactory(registryFactory);
 
         when(registryFactory.getRegistry(registryProtocol.getRegistryUrl(url))).thenReturn(registry);
 
@@ -543,8 +535,6 @@ public class RegistryProtocolTest {
             String.valueOf(false));
 
         verify(registry,times(1)).register(registeredConsumerUrl);
-
-        applicationModelMockedStatic.closeOnDemand();
     }
 
 }
diff --git a/dubbo-rpc/dubbo-rpc-grpc/src/test/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocolTest.java b/dubbo-rpc/dubbo-rpc-grpc/src/test/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocolTest.java
index 2c3ea35..75d1eb8 100644
--- a/dubbo-rpc/dubbo-rpc-grpc/src/test/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocolTest.java
+++ b/dubbo-rpc/dubbo-rpc-grpc/src/test/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocolTest.java
@@ -17,8 +17,6 @@
 
 package org.apache.dubbo.rpc.protocol.grpc;
 
-import com.google.common.util.concurrent.ListenableFuture;
-import io.grpc.stub.StreamObserver;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.utils.NetUtils;
@@ -35,6 +33,8 @@ import org.apache.dubbo.rpc.protocol.grpc.support.GrpcGreeterImpl;
 import org.apache.dubbo.rpc.protocol.grpc.support.HelloReply;
 import org.apache.dubbo.rpc.protocol.grpc.support.HelloRequest;
 
+import com.google.common.util.concurrent.ListenableFuture;
+import io.grpc.stub.StreamObserver;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;