| package org.apache.continuum.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.codehaus.plexus.spring.PlexusInSpringTestCase; |
| import org.codehaus.plexus.util.FileUtils; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| import java.io.File; |
| import java.util.ArrayList; |
| import java.util.List; |
| |
| /** |
| * @author <a href="mailto:olamy@apache.org">olamy</a> |
| * @version $Id$ |
| * @since 17 juin 2008 |
| */ |
| public class TestDefaultContinuumConfiguration |
| extends PlexusInSpringTestCase |
| { |
| private static final Logger log = LoggerFactory.getLogger( TestDefaultContinuumConfiguration.class ); |
| |
| private static final String confFile = "target/test-classes/conf/continuum.xml"; |
| |
| @Override |
| protected void setUp() |
| throws Exception |
| { |
| log.info( "appserver.base : " + System.getProperty( "appserver.base" ) ); |
| |
| File originalConf = new File( getBasedir(), "src/test/resources/conf/continuum.xml" ); |
| |
| File confUsed = new File( getBasedir(), confFile ); |
| if ( confUsed.exists() ) |
| { |
| confUsed.delete(); |
| } |
| FileUtils.copyFile( originalConf, confUsed ); |
| |
| super.setUp(); |
| } |
| |
| public void testLoad() |
| throws Exception |
| { |
| ContinuumConfiguration configuration = (ContinuumConfiguration) lookup( ContinuumConfiguration.class, |
| "default" ); |
| assertNotNull( configuration ); |
| GeneralConfiguration generalConfiguration = configuration.getGeneralConfiguration(); |
| assertNotNull( generalConfiguration ); |
| assertNotNull( generalConfiguration.getBaseUrl() ); |
| assertEquals( "http://test", generalConfiguration.getBaseUrl() ); |
| assertEquals( new File( "myBuildOutputDir" ), generalConfiguration.getBuildOutputDirectory() ); |
| assertTrue( generalConfiguration.isDistributedBuildEnabled() ); |
| assertNotNull( generalConfiguration.getBuildAgents() ); |
| org.apache.continuum.configuration.BuildAgentConfiguration buildAgentConfig = |
| generalConfiguration.getBuildAgents().get( 0 ); |
| assertEquals( "http://buildagent/xmlrpc", buildAgentConfig.getUrl() ); |
| assertEquals( "linux", buildAgentConfig.getDescription() ); |
| assertTrue( buildAgentConfig.isEnabled() ); |
| |
| // agent group tests |
| assertNotNull( "agent group", generalConfiguration.getBuildAgentGroups() ); |
| BuildAgentGroupConfiguration buildAgentGroupConfig = generalConfiguration.getBuildAgentGroups().get( 0 ); |
| assertEquals( "group-agent-1", buildAgentGroupConfig.getName() ); |
| BuildAgentConfiguration agentConfig = buildAgentGroupConfig.getBuildAgents().get( 0 ); |
| assertEquals( "http://buildagent/xmlrpc", agentConfig.getUrl() ); |
| assertEquals( "linux", agentConfig.getDescription() ); |
| } |
| |
| public void testDefaultConfiguration() |
| throws Exception |
| { |
| File conf = new File( getBasedir(), confFile ); |
| if ( conf.exists() ) |
| { |
| conf.delete(); |
| } |
| ContinuumConfiguration configuration = (ContinuumConfiguration) lookup( ContinuumConfiguration.class, |
| "default" ); |
| assertNotNull( configuration ); |
| GeneralConfiguration generalConfiguration = new GeneralConfiguration(); |
| generalConfiguration.setBaseUrl( "http://test/zloug" ); |
| generalConfiguration.setProxyConfiguration( new ProxyConfiguration() ); |
| generalConfiguration.getProxyConfiguration().setProxyHost( "localhost" ); |
| generalConfiguration.getProxyConfiguration().setProxyPort( 8080 ); |
| File targetDir = new File( getBasedir(), "target" ); |
| generalConfiguration.setBuildOutputDirectory( targetDir ); |
| BuildAgentConfiguration buildAgentConfiguration = new BuildAgentConfiguration(); |
| buildAgentConfiguration.setUrl( "http://buildagent/test" ); |
| buildAgentConfiguration.setDescription( "windows xp" ); |
| buildAgentConfiguration.setEnabled( false ); |
| |
| BuildAgentConfiguration buildAgentConfiguration2 = new BuildAgentConfiguration(); |
| buildAgentConfiguration2.setUrl( "http://buildagent-node-2/test" ); |
| buildAgentConfiguration2.setDescription( "linux" ); |
| buildAgentConfiguration2.setEnabled( true ); |
| |
| List<BuildAgentConfiguration> buildAgents = new ArrayList<BuildAgentConfiguration>(); |
| buildAgents.add( buildAgentConfiguration ); |
| buildAgents.add( buildAgentConfiguration2 ); |
| BuildAgentGroupConfiguration buildAgentGroupConfiguration = new BuildAgentGroupConfiguration(); |
| buildAgentGroupConfiguration.setName( "secret-agent" ); |
| buildAgentGroupConfiguration.setBuildAgents( buildAgents ); |
| |
| List<BuildAgentGroupConfiguration> buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>(); |
| buildAgentGroups.add( buildAgentGroupConfiguration ); |
| |
| generalConfiguration.setDistributedBuildEnabled( false ); |
| generalConfiguration.setBuildAgents( buildAgents ); |
| generalConfiguration.setBuildAgentGroups( buildAgentGroups ); |
| configuration.setGeneralConfiguration( generalConfiguration ); |
| configuration.save(); |
| |
| String contents = FileUtils.fileRead( conf ); |
| assertTrue( contents.indexOf( "http://test/zloug" ) > 0 ); |
| assertTrue( contents.indexOf( "localhost" ) > 0 ); |
| assertTrue( contents.indexOf( "8080" ) > 0 ); |
| assertTrue( contents.indexOf( "http://buildagent/test" ) > 0 ); |
| assertTrue( contents.indexOf( "windows xp" ) > 0 ); |
| assertTrue( contents.indexOf( "http://buildagent-node-2/test" ) > 0 ); |
| assertTrue( contents.indexOf( "linux" ) > 0 ); |
| assertTrue( contents.indexOf( "secret-agent" ) > 0 ); |
| |
| configuration.reload(); |
| assertEquals( "http://test/zloug", configuration.getGeneralConfiguration().getBaseUrl() ); |
| assertEquals( "localhost", configuration.getGeneralConfiguration().getProxyConfiguration().getProxyHost() ); |
| assertEquals( 8080, configuration.getGeneralConfiguration().getProxyConfiguration().getProxyPort() ); |
| assertEquals( targetDir.getPath(), |
| configuration.getGeneralConfiguration().getBuildOutputDirectory().getPath() ); |
| assertEquals( "http://buildagent/test", configuration.getGeneralConfiguration().getBuildAgents().get( |
| 0 ).getUrl() ); |
| assertFalse( configuration.getGeneralConfiguration().getBuildAgents().get( 0 ).isEnabled() ); |
| assertEquals( "http://buildagent-node-2/test", configuration.getGeneralConfiguration().getBuildAgents().get( |
| 1 ).getUrl() ); |
| assertTrue( configuration.getGeneralConfiguration().getBuildAgents().get( 1 ).isEnabled() ); |
| |
| assertEquals( "secret-agent", configuration.getGeneralConfiguration().getBuildAgentGroups().get( |
| 0 ).getName() ); |
| assertEquals( "http://buildagent/test", configuration.getGeneralConfiguration().getBuildAgentGroups().get( |
| 0 ).getBuildAgents().get( 0 ).getUrl() ); |
| assertEquals( "http://buildagent-node-2/test", |
| configuration.getGeneralConfiguration().getBuildAgentGroups().get( 0 ).getBuildAgents().get( |
| 1 ).getUrl() ); |
| assertFalse( configuration.getGeneralConfiguration().isDistributedBuildEnabled() ); |
| log.info( "generalConfiguration " + configuration.getGeneralConfiguration().toString() ); |
| } |
| } |