Package com.taobao.metamorphosis

Source Code of com.taobao.metamorphosis.ServerStartupTest

/*
* (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;

import java.util.Map;
import java.util.Properties;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.PosixParser;
import org.apache.commons.lang.StringUtils;
import org.easymock.classextension.EasyMock;
import org.easymock.classextension.IMocksControl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import com.taobao.metamorphosis.server.BrokerZooKeeper;
import com.taobao.metamorphosis.server.assembly.BrokerCommandProcessor;
import com.taobao.metamorphosis.server.assembly.MetaMorphosisBroker;
import com.taobao.metamorphosis.server.utils.MetaConfig;


/**
* @author �޻�
* @since 2011-6-9 ����07:57:46
*/

public class ServerStartupTest {
    private MetaMorphosisBroker metaMorphosisBroker;
    private BrokerCommandProcessor brokerCommandProcessor;
    private BrokerZooKeeper brokerZooKeeper;
    private IMocksControl mocksControl;


    @Before
    public void setup() {
        this.mocksControl = EasyMock.createControl();
        this.metaMorphosisBroker = this.mocksControl.createMock(MetaMorphosisBroker.class);
        this.brokerCommandProcessor = this.mocksControl.createMock(BrokerCommandProcessor.class);
        this.brokerZooKeeper = this.mocksControl.createMock(BrokerZooKeeper.class);

    }


    @Test
    public void testGetPluginsInfo() {
        final String[] args =
                StringUtils.split(
                    "./meta-server-start.sh -f ../conf/server.properties -FjettyBroker jettyBroker.properties", " ");
        final CommandLine line = StartupHelp.parseCmdLine(args, new PosixParser());
        final Map<String, Properties> pluginsInfo = ServerStartup.getPluginsInfo(line);
        Assert.assertTrue(pluginsInfo.get("jettyBroker").getProperty("serverPort").equals("8080"));

        // EasyMock.expect(this.metaMorphosisBroker.).andReturn(this.brokerCommandProcessor)
        // .anyTimes();
        // EasyMock.expect(this.metaMorphosisBroker.getMetaConfig()).andReturn(new
        // MetaConfig());
        EasyMock.expect(this.metaMorphosisBroker.getBrokerProcessor()).andReturn(null);
        this.mocksControl.replay();

        final BrokerPlugins brokerPlugins = new BrokerPlugins(pluginsInfo, this.metaMorphosisBroker);
        brokerPlugins.init(this.metaMorphosisBroker, null);
        this.mocksControl.verify();
        Assert.assertTrue(brokerPlugins.getPluginsInfo().size() == 1);
        Assert.assertTrue(brokerPlugins.getPluginsInfo().containsKey("jettyBroker"));
    }


    @Test
    public void testGetPluginsInfo_metaslave() {
        final String[] args =
                StringUtils.split(
                    "./meta-server-start.sh -f ../conf/server.properties -Fmetaslave async_slave.properties", " ");
        final CommandLine line = StartupHelp.parseCmdLine(args, new PosixParser());
        final Map<String, Properties> pluginsInfo = ServerStartup.getPluginsInfo(line);
        Assert.assertTrue(pluginsInfo.get("metaslave").getProperty("slaveId").equals("1"));
        Assert.assertTrue(pluginsInfo.get("metaslave").getProperty("slaveGroup").equals("meta-slave-group"));
        Assert.assertTrue(pluginsInfo.get("metaslave").getProperty("slaveMaxDelayInMills").equals("500"));

        EasyMock.expect(this.metaMorphosisBroker.getBrokerZooKeeper()).andReturn(brokerZooKeeper).anyTimes();
        // this.brokerZooKeeper.resetBrokerIdPath();
        // EasyMock.expect(this.metaMorphosisBroker.getStoreManager()).andReturn(null);
        // EasyMock.expect(metaMorphosisBroker.getIdWorker()).andReturn(null);
        // EasyMock.expect(this.metaMorphosisBroker.getStatsManager()).andReturn(null);
        // EasyMock.expect(this.metaMorphosisBroker.getBrokerProcessor()).andReturn(this.brokerCommandProcessor);
        final MetaConfig metaConfig = new MetaConfig();
        // metaConfig.setSlaveId(1);
        EasyMock.expect(this.metaMorphosisBroker.getMetaConfig()).andReturn(metaConfig).anyTimes();
        this.mocksControl.replay();

        final BrokerPlugins brokerPlugins = new BrokerPlugins(pluginsInfo, this.metaMorphosisBroker);
        // brokerPlugins.init(this.metaMorphosisBroker, null);
        this.mocksControl.verify();

        Assert.assertTrue(brokerPlugins.getPluginsInfo().size() == 1);
        Assert.assertTrue(brokerPlugins.getPluginsInfo().containsKey("metaslave"));
    }
}
TOP

Related Classes of com.taobao.metamorphosis.ServerStartupTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.