package com.alibaba.rocketmq.common; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import org.junit.Assert; import org.junit.Test; import com.alibaba.rocketmq.common.namesrv.TopicRuntimeData; import com.alibaba.rocketmq.common.protocol.route.BrokerData; import com.alibaba.rocketmq.common.protocol.route.QueueData; public class TopicRuntimeDataTest { @Test public void testEncode() throws Exception { TopicRuntimeData topicRuntimeData = create(); byte[] data = topicRuntimeData.encode(); TopicRuntimeData serial = TopicRuntimeData.decode(data); Assert.assertTrue(topicRuntimeData.equals(serial)); } @Test public void testEncodeSpecific() throws Exception { TopicRuntimeData topicRuntimeData = createSpecific(); byte[] data = topicRuntimeData.encodeSpecific(); TopicRuntimeData serial = TopicRuntimeData.decode(data); Assert.assertTrue(topicRuntimeData.equals(serial)); } private TopicRuntimeData createSpecific() { TopicRuntimeData data = new TopicRuntimeData(); data.getTopicOrderConfs().put("topic-1", "topic.num.DAILY-UIC-USERS-EXTRA=105:4;106:4;topic.num.andor-applye-test=100:2;101:2"); data.getBrokerList().add("10.23.12.12:8123"); data.getBrokerList().add("10.23.12.13:8123"); data.getBrokerList().add("10.23.12.14:8123"); data.getBrokerList().add("10.23.12.15:8123"); return data; } private TopicRuntimeData create() { TopicRuntimeData data = new TopicRuntimeData(); QueueData queueData1 = new QueueData(); queueData1.setBrokerName("broker-1"); queueData1.setPerm(4); queueData1.setReadQueueNums(4); queueData1.setWriteQueueNums(4); QueueData queueData2 = new QueueData(); queueData2.setBrokerName("broker-2"); queueData2.setPerm(4); queueData2.setReadQueueNums(4); queueData2.setWriteQueueNums(4); QueueData queueData3 = new QueueData(); queueData3.setBrokerName("broker-3"); queueData3.setPerm(4); queueData3.setReadQueueNums(4); queueData3.setWriteQueueNums(4); QueueData queueData4 = new QueueData(); queueData4.setBrokerName("broker-4"); queueData4.setPerm(4); queueData4.setReadQueueNums(4); queueData4.setWriteQueueNums(4); List<QueueData> queueDatas1 = new ArrayList<QueueData>(); queueDatas1.add(queueData1); queueDatas1.add(queueData2); List<QueueData> queueDatas2 = new ArrayList<QueueData>(); queueDatas2.add(queueData3); queueDatas2.add(queueData4); data.getTopicBrokers().put("topic-1", queueDatas1); data.getTopicBrokers().put("topic-2", queueDatas2); data.getTopicOrderConfs().put("topic-1", "topic.num.DAILY-UIC-USERS-EXTRA=105:4;106:4;topic.num.andor-applye-test=100:2;101:2"); BrokerData broker1 = new BrokerData(); broker1.setBrokerName("broker-1"); HashMap<Long, String> brokerAddrs1 = new HashMap<Long, String>(); brokerAddrs1.put(0L, "10.23.12.12:8123"); broker1.setBrokerAddrs(brokerAddrs1); BrokerData broker2 = new BrokerData(); broker2.setBrokerName("broker-2"); HashMap<Long, String> brokerAddrs2 = new HashMap<Long, String>(); brokerAddrs2.put(0L, "10.23.12.13:8123"); broker2.setBrokerAddrs(brokerAddrs2); BrokerData broker3 = new BrokerData(); broker3.setBrokerName("broker-3"); HashMap<Long, String> brokerAddrs3 = new HashMap<Long, String>(); brokerAddrs3.put(0L, "10.23.12.14:8123"); broker3.setBrokerAddrs(brokerAddrs3); BrokerData broker4 = new BrokerData(); broker4.setBrokerName("broker-4"); HashMap<Long, String> brokerAddrs4 = new HashMap<Long, String>(); //brokerAddrs4.put(0L, "10.23.12.15:8123"); broker4.setBrokerAddrs(brokerAddrs4); data.getBrokers().put("broker-1", broker1); data.getBrokers().put("broker-2", broker2); data.getBrokers().put("broker-3", broker3); data.getBrokers().put("broker-4", broker4); data.getBrokerList().add("10.23.12.12:8123"); data.getBrokerList().add("10.23.12.13:8123"); data.getBrokerList().add("10.23.12.14:8123"); data.getBrokerList().add("10.23.12.15:8123"); return data; } }