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