This is an automated email from the ASF dual-hosted git repository.
wangxin pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo-ops.git
The following commit(s) were added to refs/heads/develop by this push:
new dfa00dc unit test for ConfigCenter (#257)
dfa00dc is described below
commit dfa00dc44c76a48d8a4d55b905a022238bd420ee
Author: 孙不服 <[email protected]>
AuthorDate: Sun Jan 20 15:20:53 2019 +0800
unit test for ConfigCenter (#257)
* unit test for ConfigCenter
---
.../apache/dubbo/admin/config/ConfigCenter.java | 2 +-
.../dubbo/admin/config/ConfigCenterTest.java | 140 +++++++++++++++++++++
2 files changed, 141 insertions(+), 1 deletion(-)
diff --git
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
index 491b35e..382e2b2 100644
---
a/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
+++
b/dubbo-admin-backend/src/main/java/org/apache/dubbo/admin/config/ConfigCenter.java
@@ -60,8 +60,8 @@ public class ConfigCenter {
@Value("${admin.config-center.username:}")
private String username;
@Value("${admin.config-center.password:}")
-
private String password;
+
private static String globalConfigPath = "config/dubbo/dubbo.properties";
private static final Logger logger =
LoggerFactory.getLogger(ConfigCenter.class);
diff --git
a/dubbo-admin-backend/src/test/java/org/apache/dubbo/admin/config/ConfigCenterTest.java
b/dubbo-admin-backend/src/test/java/org/apache/dubbo/admin/config/ConfigCenterTest.java
new file mode 100644
index 0000000..1be2ba9
--- /dev/null
+++
b/dubbo-admin-backend/src/test/java/org/apache/dubbo/admin/config/ConfigCenterTest.java
@@ -0,0 +1,140 @@
+package org.apache.dubbo.admin.config;
+
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.retry.ExponentialBackoffRetry;
+import org.apache.curator.test.TestingServer;
+import org.apache.dubbo.admin.common.exception.ConfigurationException;
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.utils.NetUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import java.io.IOException;
+
+import static org.junit.Assert.*;
+
+
+@RunWith(SpringJUnit4ClassRunner.class)
+public class ConfigCenterTest {
+
+ private String zkAddress;
+ private TestingServer zkServer;
+ private CuratorFramework zkClient;
+
+ @Before
+ public void setup() throws Exception {
+ int zkServerPort = NetUtils.getAvailablePort();
+ zkAddress = "zookeeper://127.0.0.1:" + zkServerPort;
+ zkServer = new TestingServer(zkServerPort, true);
+ zkClient =
CuratorFrameworkFactory.builder().connectString(zkServer.getConnectString()).retryPolicy(new
ExponentialBackoffRetry(1000, 3)).build();
+ zkClient.start();
+ }
+
+ @After
+ public void tearDown() throws IOException {
+ zkServer.close();
+ zkServer.stop();
+ }
+
+ @InjectMocks
+ private ConfigCenter configCenter;
+
+ @Test
+ public void testGetDynamicConfiguration() throws Exception {
+ // mock @value inject
+ ReflectionTestUtils.setField(configCenter, "configCenter", zkAddress);
+ ReflectionTestUtils.setField(configCenter, "group", "dubbo");
+ ReflectionTestUtils.setField(configCenter, "username", "username");
+ ReflectionTestUtils.setField(configCenter, "password", "password");
+
+ // config is null
+ configCenter.getDynamicConfiguration();
+
+ // config is registry address
+ zkClient.createContainers("/dubbo/config/dubbo/dubbo.properties");
+ zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties",
"dubbo.registry.address=zookeeper://test-registry.com:2181".getBytes());
+ configCenter.getDynamicConfiguration();
+ Object registryUrl = ReflectionTestUtils.getField(configCenter,
"registryUrl");
+ assertNotNull(registryUrl);
+ assertEquals("test-registry.com", ((URL) registryUrl).getHost());
+
+ // config is meta date address
+ zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties",
"dubbo.metadata-report.address=zookeeper://test-metadata.com:2181".getBytes());
+ configCenter.getDynamicConfiguration();
+ Object metadataUrl = ReflectionTestUtils.getField(configCenter,
"metadataUrl");
+ assertNotNull(metadataUrl);
+ assertEquals("test-metadata.com", ((URL) metadataUrl).getHost());
+
+ // config is empty
+ zkClient.setData().forPath("/dubbo/config/dubbo/dubbo.properties",
"".getBytes());
+ ReflectionTestUtils.setField(configCenter, "registryUrl", null);
+ ReflectionTestUtils.setField(configCenter, "metadataUrl", null);
+ configCenter.getDynamicConfiguration();
+ assertNull(ReflectionTestUtils.getField(configCenter, "registryUrl"));
+ assertNull(ReflectionTestUtils.getField(configCenter, "metadataUrl"));
+
+ // configCenter is null
+ ReflectionTestUtils.setField(configCenter, "configCenter", null);
+ // registryAddress is not null
+ ReflectionTestUtils.setField(configCenter, "registryAddress",
zkAddress);
+ configCenter.getDynamicConfiguration();
+ registryUrl = ReflectionTestUtils.getField(configCenter,
"registryUrl");
+ assertNotNull(registryUrl);
+ assertEquals("127.0.0.1", ((URL) registryUrl).getHost());
+
+ // configCenter & registryAddress are null
+ try {
+ ReflectionTestUtils.setField(configCenter, "configCenter", null);
+ ReflectionTestUtils.setField(configCenter, "registryAddress",
null);
+ configCenter.getDynamicConfiguration();
+ fail("should throw exception when configCenter, registryAddress
are all null");
+ } catch (ConfigurationException e) {
+ }
+ }
+
+ @Test
+ public void testGetRegistry() throws Exception {
+ try {
+ configCenter.getRegistry();
+ fail("should throw exception when registryAddress is blank");
+ } catch (ConfigurationException e) {
+ }
+ assertNull(ReflectionTestUtils.getField(configCenter, "registryUrl"));
+
+ // mock @value inject
+ ReflectionTestUtils.setField(configCenter, "registryAddress",
zkAddress);
+ ReflectionTestUtils.setField(configCenter, "group", "dubbo");
+ ReflectionTestUtils.setField(configCenter, "username", "username");
+ ReflectionTestUtils.setField(configCenter, "password", "password");
+
+ configCenter.getRegistry();
+ Object registryUrl = ReflectionTestUtils.getField(configCenter,
"registryUrl");
+ assertNotNull(registryUrl);
+ assertEquals("127.0.0.1", ((URL) registryUrl).getHost());
+ }
+
+ @Test
+ public void testGetMetadataCollector() throws Exception {
+ // when metadataAddress is empty
+ ReflectionTestUtils.setField(configCenter, "metadataAddress", "");
+ configCenter.getMetadataCollector();
+ assertNull(ReflectionTestUtils.getField(configCenter, "metadataUrl"));
+
+ // mock @value inject
+ ReflectionTestUtils.setField(configCenter, "metadataAddress",
zkAddress);
+ ReflectionTestUtils.setField(configCenter, "group", "dubbo");
+ ReflectionTestUtils.setField(configCenter, "username", "username");
+ ReflectionTestUtils.setField(configCenter, "password", "password");
+
+ configCenter.getMetadataCollector();
+ Object metadataUrl = ReflectionTestUtils.getField(configCenter,
"metadataUrl");
+ assertNotNull(metadataUrl);
+ assertEquals("127.0.0.1", ((URL) metadataUrl).getHost());
+ }
+}