From 2df4cfc7dc3a59374251b5ac60cc76f536f97d89 Mon Sep 17 00:00:00 2001 From: lindzh Date: Thu, 24 Aug 2017 16:31:55 +0800 Subject: [PATCH] add cluster info test --- .../DefaultRequestProcessorTest.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/namesrv/src/test/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessorTest.java b/namesrv/src/test/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessorTest.java index 97aa9ac016c..e8969f0ef9b 100644 --- a/namesrv/src/test/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessorTest.java +++ b/namesrv/src/test/java/org/apache/rocketmq/namesrv/processor/DefaultRequestProcessorTest.java @@ -29,7 +29,9 @@ import org.apache.rocketmq.common.namesrv.RegisterBrokerResult; import org.apache.rocketmq.common.protocol.RequestCode; import org.apache.rocketmq.common.protocol.ResponseCode; +import org.apache.rocketmq.common.protocol.body.ClusterInfo; import org.apache.rocketmq.common.protocol.body.TopicConfigSerializeWrapper; +import org.apache.rocketmq.common.protocol.header.GetClusterListRequestHeader; import org.apache.rocketmq.common.protocol.header.namesrv.DeleteKVConfigRequestHeader; import org.apache.rocketmq.common.protocol.header.namesrv.GetKVConfigRequestHeader; import org.apache.rocketmq.common.protocol.header.namesrv.GetKVConfigResponseHeader; @@ -76,7 +78,9 @@ public void init() throws Exception { field.set(namesrvController, routeInfoManager); defaultRequestProcessor = new DefaultRequestProcessor(namesrvController); - registerRouteInfoManager(); + for (int i = 10; i < 15; i++) { + registerRouteInfoManager("a" + i, i); + } logger = mock(Logger.class); when(logger.isInfoEnabled()).thenReturn(false); @@ -257,20 +261,45 @@ private static void setFinalStatic(Field field, Object newValue) throws Exceptio field.set(null, newValue); } - private void registerRouteInfoManager() { + private void registerRouteInfoManager(String prefix, int id) { + TopicConfigSerializeWrapper topicConfigSerializeWrapper = new TopicConfigSerializeWrapper(); ConcurrentHashMap topicConfigConcurrentHashMap = new ConcurrentHashMap<>(); TopicConfig topicConfig = new TopicConfig(); topicConfig.setWriteQueueNums(8); - topicConfig.setTopicName("unit-test"); + topicConfig.setTopicName("unit-test_" + prefix); topicConfig.setPerm(6); topicConfig.setReadQueueNums(8); topicConfig.setOrder(false); topicConfigConcurrentHashMap.put("unit-test", topicConfig); topicConfigSerializeWrapper.setTopicConfigTable(topicConfigConcurrentHashMap); + Channel channel = mock(Channel.class); - RegisterBrokerResult registerBrokerResult = routeInfoManager.registerBroker("default-cluster", "127.0.0.1:10911", "default-broker", 1234, "127.0.0.1:1001", + RegisterBrokerResult registerBrokerResult = routeInfoManager.registerBroker("default-cluster_" + prefix, "127.0.0.1:120" + id, "default-broker_" + prefix, 1236 + id, "127.0.0.1:100" + id, topicConfigSerializeWrapper, new ArrayList(), channel); } + + private static RemotingCommand genClusterListCmd(String cluster) { + GetClusterListRequestHeader header = new GetClusterListRequestHeader(); + header.setCluster(cluster); + RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_BROKER_CLUSTER_INFO, header); + return request; + } + + @Test + public void testClusterInfo() throws RemotingCommandException { + testClusterInfo(null, 5); + testClusterInfo("default-cluster_a10", 1); + } + + public void testClusterInfo(String cluster, int want) throws RemotingCommandException { + ChannelHandlerContext ctx = mock(ChannelHandlerContext.class); + when(ctx.channel()).thenReturn(null); + RemotingCommand response = defaultRequestProcessor.processRequest(ctx, genClusterListCmd(cluster)); + assertThat(response.getCode()).isEqualTo(ResponseCode.SUCCESS); + assertThat(response.getRemark()).isNull(); + ClusterInfo info = ClusterInfo.decode(response.getBody(), ClusterInfo.class); + assertThat(info.getClusterAddrTable().size() == want); + } } \ No newline at end of file