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/27 11:43:12 UTC
[dubbo] branch 3.0 updated: Add unit test for
StandardMetadataServiceURLBuilder (#8913)
This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/3.0 by this push:
new cd5cad2 Add unit test for StandardMetadataServiceURLBuilder (#8913)
cd5cad2 is described below
commit cd5cad2daec964a75b7572e994b9a39547401f95
Author: 灼华 <43...@users.noreply.github.com>
AuthorDate: Mon Sep 27 19:43:04 2021 +0800
Add unit test for StandardMetadataServiceURLBuilder (#8913)
* Add unit test for StandardMetadataServiceURLBuilder
* FIX UT
* ApplicationModel reset
---
.../client/metadata/MetadataServiceURLBuilder.java | 2 +-
.../metadata/MetadataServiceURLBuilderTest.java | 10 +--
.../StandardMetadataServiceURLBuilderTest.java | 85 ++++++++++++++++++++++
3 files changed, 88 insertions(+), 9 deletions(-)
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java
index 7f77bdc..8d1aa8a 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java
@@ -34,7 +34,7 @@ public interface MetadataServiceURLBuilder {
* Build the {@link URL URLs} from the specified {@link ServiceInstance}
*
* @param serviceInstance {@link ServiceInstance}
- * @return TODO, usually, we generate one metadata url from one instance. There's no scenario to return a metadta url list.
+ * @return TODO, usually, we generate one metadata url from one instance. There's no scenario to return a metadata url list.
*/
List<URL> build(ServiceInstance serviceInstance);
}
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
index c8032b8..1dd2d98 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilderTest.java
@@ -27,17 +27,11 @@ import org.apache.dubbo.rpc.model.ApplicationModel;
*/
public class MetadataServiceURLBuilderTest {
- static ServiceInstance serviceInstance = new DefaultServiceInstance("127.0.0.1", "test", 8080, ApplicationModel.defaultModel());
+ static ServiceInstance serviceInstance = new DefaultServiceInstance("test", "127.0.0.1", 8080, ApplicationModel.defaultModel());
static {
serviceInstance.getMetadata().put("dubbo.metadata-service.urls", "[ \"dubbo://192.168.0.102:20881/com.alibaba.cloud.dubbo.service.DubboMetadataService?anyhost=true&application=spring-cloud-alibaba-dubbo-provider&bind.ip=192.168.0.102&bind.port=20881&deprecated=false&dubbo=2.0.2&dynamic=true&generic=false&group=spring-cloud-alibaba-dubbo-provider&interface=com.alibaba.cloud.dubbo.service.DubboMetadataService&methods=getAllServiceKeys,getServiceRestMetadata,getExportedURLs,getAllEx [...]
- serviceInstance.getMetadata().put("dubbo.metadata-service.url-params", "{\"dubbo\":{\"application\":\"dubbo-provider-demo\",\"deprecated\":\"false\",\"group\":\"dubbo-provider-demo\",\"version\":\"1.0.0\",\"timestamp\":\"1564845042651\",\"dubbo\":\"2.0.2\",\"provider.host\":\"192.168.0.102\",\"provider.port\":\"20880\"}}");
+ serviceInstance.getMetadata().put("dubbo.metadata-service.url-params", "{\"application\":\"dubbo-provider-demo\",\"protocol\":\"rest\",\"group\":\"dubbo-provider-demo\",\"version\":\"1.0.0\",\"timestamp\":\"1564845042651\",\"dubbo\":\"2.0.2\",\"host\":\"192.168.0.102\",\"port\":\"20880\"}");
}
-// @Test
-// public void testBuild() {
-// assertTrue(composite().build(null).isEmpty());
-// assertTrue(composite().build(new DefaultServiceInstance("127.0.0.1", "test", 8080)).isEmpty());
-// assertEquals(2, composite().build(serviceInstance).size());
-// }
}
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilderTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilderTest.java
new file mode 100644
index 0000000..22e5832
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilderTest.java
@@ -0,0 +1,85 @@
+/*
+ * 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.dubbo.registry.client.metadata;
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.metadata.MetadataService;
+import org.apache.dubbo.registry.client.DefaultServiceInstance;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import java.util.List;
+
+import static org.apache.dubbo.registry.client.metadata.MetadataServiceURLBuilderTest.serviceInstance;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.spy;
+
+/**
+ * {@link StandardMetadataServiceURLBuilder} Test
+ */
+public class StandardMetadataServiceURLBuilderTest {
+
+ private StandardMetadataServiceURLBuilder builder = new StandardMetadataServiceURLBuilder();
+
+
+ @BeforeAll
+ public static void setUp() {
+ ApplicationConfig applicationConfig = new ApplicationConfig("demo");
+ applicationConfig.setMetadataServicePort(7001);
+ ApplicationModel.defaultModel().getApplicationConfigManager().setApplication(applicationConfig);
+ }
+
+ @AfterAll
+ public static void clearUp() {
+ ApplicationModel.reset();
+ }
+
+ @Test
+ public void testBuild() {
+ // test generateUrlWithoutMetadata
+ List<URL> urls = builder.build(new DefaultServiceInstance("test", "127.0.0.1", 8080, ApplicationModel.defaultModel()));
+ assertEquals(1, urls.size());
+ URL url = urls.get(0);
+ assertEquals(url.getProtocol(), "dubbo");
+ assertEquals(url.getHost(), "127.0.0.1");
+ assertEquals(url.getPort(), 7001);
+ assertEquals(url.getServiceInterface(), MetadataService.class.getName());
+ assertEquals(url.getGroup(), "test");
+ assertEquals(url.getSide(), "consumer");
+ assertEquals(url.getVersion(), "1.0.0");
+ assertEquals(url.getParameters().get("getAndListenInstanceMetadata.1.callback"), "true");
+ assertEquals(url.getParameters().get("reconnect"), "false");
+ assertEquals(url.getParameters().get("timeout"), "5000");
+
+ // test generateWithMetadata
+ urls = builder.build(serviceInstance);
+ assertEquals(1, urls.size());
+ url = urls.get(0);
+ assertEquals(url.getProtocol(), "rest");
+ assertEquals(url.getHost(), "127.0.0.1");
+ assertEquals(url.getPort(), 20880);
+ assertEquals(url.getServiceInterface(), MetadataService.class.getName());
+ assertEquals(url.getGroup(), "test");
+ assertEquals(url.getSide(), "consumer");
+ assertEquals(url.getVersion(), "1.0.0");
+ assertEquals(url.getApplication(), "dubbo-provider-demo");
+ assertEquals(url.getParameters().get("timeout"), "5000");
+ }
+
+}