Package org.apache.continuum.buildagent.configuration

Source Code of org.apache.continuum.buildagent.configuration.BuildAgentConfigurationTest

package org.apache.continuum.buildagent.configuration;

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you 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.
*/

import org.apache.continuum.buildagent.model.Installation;
import org.apache.continuum.buildagent.model.LocalRepository;
import org.codehaus.plexus.spring.PlexusInSpringTestCase;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class BuildAgentConfigurationTest
    extends PlexusInSpringTestCase
{
    public void testInitialize()
        throws Exception
    {
        DefaultBuildAgentConfiguration config = (DefaultBuildAgentConfiguration) lookup(
            BuildAgentConfiguration.class );

        config.setConfigurationFile( new File( getBasedir(),
                                               "target/test-classes/buildagent-config/continuum-buildagent.xml" ) );

        config.initialize();

        GeneralBuildAgentConfiguration generalConfig = config.getContinuumBuildAgentConfiguration();
        assertEquals( "http://localhost:9595/continuum/master-xmlrpc", generalConfig.getContinuumServerUrl() );
        assertEquals( new File( "/tmp/data/build-output-directory" ), generalConfig.getBuildOutputDirectory() );
        assertEquals( new File( "/tmp/data/working-directory" ), generalConfig.getWorkingDirectory() );
        assertEquals( 1, generalConfig.getInstallations().size() );

        Installation installation = generalConfig.getInstallations().get( 0 );
        assertEquals( "Tool", installation.getType() );
        assertEquals( "Maven 2.2.1 Installation", installation.getName() );
        assertEquals( "M2_HOME", installation.getVarName() );
        assertEquals( "/tmp/apache-maven-2.2.1", installation.getVarValue() );

        LocalRepository localRepo = generalConfig.getLocalRepositories().get( 0 );
        assertLocalRepository( getExpectedLocalRepo(), localRepo );
    }

    public void testSaveExistingConfiguration()
        throws Exception
    {
        DefaultBuildAgentConfiguration config = (DefaultBuildAgentConfiguration) lookup(
            BuildAgentConfiguration.class );

        config.setConfigurationFile( new File( getBasedir(),
                                               "target/test-classes/buildagent-config/continuum-buildagent-edit.xml" ) );

        config.initialize();

        String expected = "http://192.165.240.12:8080/continuum/master-xmlrpc";

        GeneralBuildAgentConfiguration generalConfig = config.getContinuumBuildAgentConfiguration();

        assertEquals( "http://localhost:9595/continuum/master-xmlrpc", generalConfig.getContinuumServerUrl() );
        assertEquals( 1, generalConfig.getInstallations().size() );

        generalConfig.setContinuumServerUrl( expected );

        Installation expectedInstallation = getExpectedInstallation();
        generalConfig.getInstallations().add( expectedInstallation );

        LocalRepository expectedLocalRepo = getExpectedLocalRepo();

        List<LocalRepository> localRepos = new ArrayList<LocalRepository>();
        localRepos.add( expectedLocalRepo );

        generalConfig.setLocalRepositories( localRepos );

        config.save();

        config.reload();

        assertEquals( expected, config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
        assertEquals( 2, config.getContinuumBuildAgentConfiguration().getInstallations().size() );

        Installation installation = generalConfig.getInstallations().get( 1 );
        assertInstallation( expectedInstallation, installation );

        LocalRepository localRepo = generalConfig.getLocalRepositories().get( 0 );
        assertLocalRepository( expectedLocalRepo, localRepo );
    }

    public void testSaveNewConfiguration()
        throws Exception
    {
        File configFile = new File( getBasedir(),
                                    "target/test-classes/buildagent-config/continuum-buildagent-new.xml" );
        DefaultBuildAgentConfiguration config = (DefaultBuildAgentConfiguration) lookup(
            BuildAgentConfiguration.class );

        config.setConfigurationFile( configFile );

        config.initialize();

        String expectedUrl = "http://localhost:8080/continuum/master-xmlrpc";
        File expectedBuildOutputDir = new File( "/tmp/data/build-output-directory" );
        File expectedWorkingDir = new File( "/tmp/data/working-directory" );

        GeneralBuildAgentConfiguration generalConfig = config.getContinuumBuildAgentConfiguration();

        assertNull( generalConfig.getContinuumServerUrl() );
        assertNull( generalConfig.getBuildOutputDirectory() );
        assertNull( generalConfig.getWorkingDirectory() );
        assertNull( generalConfig.getInstallations() );

        Installation expectedInstallation = getExpectedInstallation();

        List<Installation> installations = new ArrayList<Installation>();
        installations.add( expectedInstallation );

        LocalRepository expectedLocalRepo = getExpectedLocalRepo();

        List<LocalRepository> localRepos = new ArrayList<LocalRepository>();
        localRepos.add( expectedLocalRepo );

        generalConfig.setContinuumServerUrl( expectedUrl );
        generalConfig.setBuildOutputDirectory( expectedBuildOutputDir );
        generalConfig.setWorkingDirectory( expectedWorkingDir );
        generalConfig.setInstallations( installations );
        generalConfig.setLocalRepositories( localRepos );

        config.save();

        config.reload();

        assertTrue( configFile.exists() );
        assertEquals( expectedUrl, config.getContinuumBuildAgentConfiguration().getContinuumServerUrl() );
        assertEquals( expectedBuildOutputDir, config.getContinuumBuildAgentConfiguration().getBuildOutputDirectory() );
        assertEquals( expectedWorkingDir, config.getContinuumBuildAgentConfiguration().getWorkingDirectory() );
        assertEquals( 1, config.getContinuumBuildAgentConfiguration().getInstallations().size() );

        Installation installation = generalConfig.getInstallations().get( 0 );
        assertInstallation( expectedInstallation, installation );

        LocalRepository localRepo = generalConfig.getLocalRepositories().get( 0 );
        assertLocalRepository( expectedLocalRepo, localRepo );
    }

    private Installation getExpectedInstallation()
    {
        Installation expectedInstallation = new Installation();
        expectedInstallation.setName( "Maven 2.0.10 Installation" );
        expectedInstallation.setType( "Tool" );
        expectedInstallation.setVarName( "M2_HOME" );
        expectedInstallation.setVarValue( "/tmp/apache-maven-2.1.10" );
        return expectedInstallation;
    }

    private LocalRepository getExpectedLocalRepo()
    {
        LocalRepository expectedLocalRepo = new LocalRepository();
        expectedLocalRepo.setName( "default" );
        expectedLocalRepo.setLayout( "default" );
        expectedLocalRepo.setLocation( "/tmp/.m2/repository" );
        return expectedLocalRepo;
    }

    private void assertLocalRepository( LocalRepository expectedLocalRepo, LocalRepository localRepo )
    {
        assertEquals( expectedLocalRepo.getName(), localRepo.getName() );
        assertEquals( expectedLocalRepo.getLayout(), localRepo.getLayout() );
        assertEquals( expectedLocalRepo.getLocation(), localRepo.getLocation() );
    }

    private void assertInstallation( Installation expectedInstallation, Installation installation )
    {
        assertEquals( expectedInstallation.getType(), installation.getType() );
        assertEquals( expectedInstallation.getName(), installation.getName() );
        assertEquals( expectedInstallation.getVarName(), installation.getVarName() );
        assertEquals( expectedInstallation.getVarValue(), installation.getVarValue() );
    }
}
TOP

Related Classes of org.apache.continuum.buildagent.configuration.BuildAgentConfigurationTest

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.