You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by st...@apache.org on 2017/01/19 05:38:21 UTC
[2/3] incubator-rocketmq git commit: [ROCKETMQ-54] Polish unit tests
for rocketmq-namesrv
[ROCKETMQ-54] Polish unit tests for rocketmq-namesrv
Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/commit/226b81eb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/tree/226b81eb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/diff/226b81eb
Branch: refs/heads/ROCKETMQ-54
Commit: 226b81ebc1182a63a73fc02d175b942d63a9e6fa
Parents: 626315a
Author: stevenschew <st...@apache.org>
Authored: Thu Jan 19 11:27:08 2017 +0800
Committer: stevenschew <st...@apache.org>
Committed: Thu Jan 19 13:21:18 2017 +0800
----------------------------------------------------------------------
.../rocketmq/namesrv/NameServerInstance.java | 30 ++++++
.../rocketmq/namesrv/NamesrvControllerTest.java | 41 +++++++++
.../namesrv/kvconfig/KVConfigManagerTest.java | 44 +++++++++
.../kvconfig/KVConfigSerializeWrapperTest.java | 43 +++++++++
.../namesrv/routeinfo/RouteInfoManagerTest.java | 96 ++++++++++++++++++++
5 files changed, 254 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/226b81eb/namesrv/src/test/java/org/apache/rocketmq/namesrv/NameServerInstance.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/NameServerInstance.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/NameServerInstance.java
new file mode 100644
index 0000000..7aac385
--- /dev/null
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/NameServerInstance.java
@@ -0,0 +1,30 @@
+package org.apache.rocketmq.namesrv;
+
+import org.apache.rocketmq.common.namesrv.NamesrvConfig;
+import org.apache.rocketmq.remoting.netty.NettyServerConfig;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+
+public class NameServerInstance {
+ protected static NamesrvController nameSrvController = null;
+ protected static NettyServerConfig nettyServerConfig = new NettyServerConfig();
+ protected static NamesrvConfig namesrvConfig = new NamesrvConfig();
+
+ @BeforeClass
+ public static void startup() throws Exception {
+ nettyServerConfig.setListenPort(9876);
+ nameSrvController = new NamesrvController(namesrvConfig, nettyServerConfig);
+ boolean initResult = nameSrvController.initialize();
+ Assert.assertTrue(initResult);
+ nameSrvController.start();
+ }
+
+ @AfterClass
+ public static void shutdown() throws Exception {
+ if (nameSrvController != null) {
+ nameSrvController.shutdown();
+ }
+ //maybe need to clean the file store. But we do not suggest deleting anything.
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/226b81eb/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
new file mode 100644
index 0000000..96a4fca
--- /dev/null
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/NamesrvControllerTest.java
@@ -0,0 +1,41 @@
+package org.apache.rocketmq.namesrv;
+
+import org.apache.rocketmq.common.namesrv.NamesrvConfig;
+import org.apache.rocketmq.remoting.netty.NettyServerConfig;
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class NamesrvControllerTest {
+ private static final int RESTART_NUM = 3;
+ protected Logger logger = LoggerFactory.getLogger(NamesrvController.class);
+
+ /**
+ * Tests if the controller can be properly stopped and started.
+ *
+ * @throws Exception If fails.
+ */
+ @Test
+ public void testRestart() throws Exception {
+
+ for (int i = 0; i < RESTART_NUM; i++) {
+ NamesrvController namesrvController = new NamesrvController(
+ new NamesrvConfig(),
+ new NettyServerConfig()
+ );
+ boolean initResult = namesrvController.initialize();
+ assertThat(initResult).isEqualTo(true);
+ logger.info("nameserver is initialized " + initResult);
+ namesrvController.start();
+ logger.info("nameserver is started");
+
+ namesrvController.shutdown();
+ logger.info("nameserver is stopped");
+ }
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/226b81eb/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
new file mode 100644
index 0000000..5c5e016
--- /dev/null
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigManagerTest.java
@@ -0,0 +1,44 @@
+package org.apache.rocketmq.namesrv.kvconfig;
+
+import org.apache.rocketmq.common.namesrv.NamesrvUtil;
+import org.apache.rocketmq.namesrv.NameServerInstance;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class KVConfigManagerTest extends NameServerInstance {
+ private static KVConfigManager kvConfigManager;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ kvConfigManager = new KVConfigManager(nameSrvController);
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ }
+
+ @Test
+ public void testPutKVConfig() {
+ kvConfigManager.load();
+ kvConfigManager.putKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, "UnitTest", "test");
+ byte[] kvConfig = kvConfigManager.getKVListByNamespace(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG);
+ assertThat(kvConfig).isNotNull();
+ String value = kvConfigManager.getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, "UnitTest");
+ assertThat(value).isEqualTo("test");
+ }
+
+ @Test
+ public void testDeleteKVConfig() {
+ kvConfigManager.deleteKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, "UnitTest");
+ byte[] kvConfig = kvConfigManager.getKVListByNamespace(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG);
+ assertThat(kvConfig).isNull();
+ Assert.assertTrue(kvConfig == null);
+ String value = kvConfigManager.getKVConfig(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, "UnitTest");
+ assertThat(value).isNull();
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/226b81eb/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigSerializeWrapperTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigSerializeWrapperTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigSerializeWrapperTest.java
new file mode 100644
index 0000000..753e5b3
--- /dev/null
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/kvconfig/KVConfigSerializeWrapperTest.java
@@ -0,0 +1,43 @@
+package org.apache.rocketmq.namesrv.kvconfig;
+
+import org.apache.rocketmq.common.namesrv.NamesrvUtil;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.HashMap;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class KVConfigSerializeWrapperTest {
+ private static KVConfigSerializeWrapper kvConfigSerializeWrapper;
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ kvConfigSerializeWrapper = new KVConfigSerializeWrapper();
+ }
+
+ @AfterClass
+ public static void tearDown() throws Exception {
+ }
+
+ @Test
+ public void testEncodeAndDecode() {
+ HashMap<String, HashMap<String, String>> result = new HashMap<>();
+ HashMap<String, String> kvs = new HashMap<>();
+ kvs.put("broker-name", "default-broker");
+ kvs.put("topic-name", "default-topic");
+ kvs.put("cid", "default-consumer-name");
+ result.put(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG, kvs);
+ kvConfigSerializeWrapper.setConfigTable(result);
+ byte[] serializeByte = KVConfigSerializeWrapper.encode(kvConfigSerializeWrapper);
+ assertThat(serializeByte).isNotNull();
+
+ KVConfigSerializeWrapper deserializeObject = KVConfigSerializeWrapper.decode(serializeByte, KVConfigSerializeWrapper.class);
+ assertThat(deserializeObject.getConfigTable()).containsKey(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG);
+ assertThat(deserializeObject.getConfigTable().get(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG).get("broker-name")).isEqualTo("default-broker");
+ assertThat(deserializeObject.getConfigTable().get(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG).get("topic-name")).isEqualTo("default-topic");
+ assertThat(deserializeObject.getConfigTable().get(NamesrvUtil.NAMESPACE_ORDER_TOPIC_CONFIG).get("cid")).isEqualTo("default-consumer-name");
+ }
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq/blob/226b81eb/namesrv/src/test/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManagerTest.java
----------------------------------------------------------------------
diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManagerTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManagerTest.java
new file mode 100644
index 0000000..680caab
--- /dev/null
+++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/routeinfo/RouteInfoManagerTest.java
@@ -0,0 +1,96 @@
+package org.apache.rocketmq.namesrv.routeinfo;
+
+import io.netty.channel.Channel;
+import org.apache.rocketmq.common.namesrv.RegisterBrokerResult;
+import org.apache.rocketmq.common.protocol.body.TopicConfigSerializeWrapper;
+import org.apache.rocketmq.common.protocol.route.TopicRouteData;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.ArrayList;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+
+public class RouteInfoManagerTest {
+
+ private static RouteInfoManager routeInfoManager;
+
+ @BeforeClass
+ public static void setup() {
+ routeInfoManager = new RouteInfoManager();
+
+ }
+
+ @AfterClass
+ public static void teardown() {
+
+ }
+
+ @Test
+ public void testGetAllClusterInfo() {
+ byte[] clusterInfo = routeInfoManager.getAllClusterInfo();
+ assertThat(clusterInfo).isNotNull();
+ }
+
+ @Test
+ public void testGetAllTopicList() {
+ byte[] topicInfo = routeInfoManager.getAllTopicList();
+ Assert.assertTrue(topicInfo != null);
+ assertThat(topicInfo).isNotNull();
+
+ }
+
+ @Test
+ public void testRegisterBroker() {
+ TopicConfigSerializeWrapper topicConfigSerializeWrapper = mock(TopicConfigSerializeWrapper.class);
+ Channel channel = mock(Channel.class);
+ RegisterBrokerResult registerBrokerResult = routeInfoManager.registerBroker("default-cluster", "127.0.0.1:10911", "default-broker", 1234, "127.0.0.1:1001",
+ topicConfigSerializeWrapper, new ArrayList<String>(), channel);
+ assertThat(registerBrokerResult).isNotNull();
+ }
+
+ @Test
+ public void testWipeWritePermOfBrokerByLock() {
+ int result = routeInfoManager.wipeWritePermOfBrokerByLock("default-broker-name");
+ assertThat(result).isEqualTo(0);
+ }
+
+ @Test
+ public void testPickupTopicRouteData() {
+ TopicRouteData result = routeInfoManager.pickupTopicRouteData("unit_test");
+ assertThat(result).isNull();
+ }
+
+ @Test
+ public void testGetSystemTopicList() {
+ byte[] topicList = routeInfoManager.getSystemTopicList();
+ assertThat(topicList).isNotNull();
+ }
+
+ @Test
+ public void testGetTopicsByCluster() {
+ byte[] topicList = routeInfoManager.getTopicsByCluster("default-cluster");
+ assertThat(topicList).isNotNull();
+ }
+
+ @Test
+ public void testGetUnitTopics() {
+ byte[] topicList = routeInfoManager.getUnitTopics();
+ assertThat(topicList).isNotNull();
+ }
+
+ @Test
+ public void testGetHasUnitSubTopicList() {
+ byte[] topicList = routeInfoManager.getHasUnitSubTopicList();
+ assertThat(topicList).isNotNull();
+ }
+
+ @Test
+ public void testGetHasUnitSubUnUnitTopicList() {
+ byte[] topicList = routeInfoManager.getHasUnitSubUnUnitTopicList();
+ assertThat(topicList).isNotNull();
+ }
+}
\ No newline at end of file