/* * (C) 2007-2012 Alibaba Group Holding Limited. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * Authors: * wuhua <wq163@163.com> , boyan <killme2008@gmail.com> */ package com.taobao.metamorphosis.server; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.util.Map; import org.junit.Test; import com.taobao.gecko.core.util.ResourcesUtils; import com.taobao.metamorphosis.server.exception.MetamorphosisServerStartupException; import com.taobao.metamorphosis.server.utils.MetaConfig; import com.taobao.metamorphosis.server.utils.TopicConfig; public class MetamorphosisStartupUnitTest { @Test(expected = MetamorphosisServerStartupException.class) public void testGetConfigFilePathOneArgs() { final String[] args = { "-f" }; MetamorphosisStartup.getConfigFilePath(args); } @Test(expected = MetamorphosisServerStartupException.class) public void testGetConfigFilePathBlankArgs() { final String[] args = { "-f", "" }; MetamorphosisStartup.getConfigFilePath(args); } @Test public void testGetConfigFilePath() { final String[] args = { "-f", "server.test" }; assertEquals("server.test", MetamorphosisStartup.getConfigFilePath(args)); } @Test public void testGetMetaConfig() throws Exception { final File file = ResourcesUtils.getResourceAsFile("server.ini"); final MetaConfig config = MetamorphosisStartup.getMetaConfig(file.getAbsolutePath()); assertEquals(1111, config.getBrokerId()); assertEquals("test.localhost", config.getHostName()); assertEquals(10, config.getNumPartitions()); assertEquals(8124, config.getServerPort()); assertEquals("/home/admin", config.getDataPath()); assertEquals("/home/datalog", config.getDataLogPath()); assertEquals(10000, config.getUnflushThreshold()); assertEquals(100000, config.getUnflushInterval()); assertEquals(1024 * 1024 * 1024, config.getMaxSegmentSize()); assertEquals(1024 * 1024, config.getMaxTransferSize()); assertEquals(90, config.getGetProcessThreadCount()); assertEquals(90, config.getPutProcessThreadCount()); assertEquals(2, config.getTopics().size()); assertTrue(config.getTopics().contains("test1")); assertTrue(config.getTopics().contains("test2")); final Map<String, TopicConfig> topicConfigs = config.getTopicConfigMap(); assertEquals(2, topicConfigs.size()); assertEquals(11, topicConfigs.get("test1").getNumPartitions()); assertEquals(13, topicConfigs.get("test2").getNumPartitions()); assertEquals("delete,77", config.getTopicConfig("test1").getDeletePolicy()); assertEquals("127.0.0.1:2181", config.getZkConfig().zkConnect); assertEquals(30000, config.getZkConfig().zkSessionTimeoutMs); assertEquals(40000, config.getZkConfig().zkConnectionTimeoutMs); assertEquals(5000, config.getZkConfig().zkSyncTimeMs); assertEquals("delete,999", config.getDeletePolicy()); final TopicConfig topicConfig1 = config.getTopicConfig("test1"); final TopicConfig topicConfig2 = config.getTopicConfig("test2"); assertEquals("/home/admin", topicConfig1.getDataPath()); assertEquals("/test2", topicConfig2.getDataPath()); assertFalse(topicConfig1.isStat()); assertTrue(topicConfig2.isStat()); } }