View Javadoc

1   package org.apache.continuum.configuration;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.io.File;
23  import java.util.ArrayList;
24  import java.util.List;
25  
26  import org.codehaus.plexus.spring.PlexusInSpringTestCase;
27  import org.codehaus.plexus.util.FileUtils;
28  import org.slf4j.Logger;
29  import org.slf4j.LoggerFactory;
30  
31  /**
32   * @author <a href="mailto:olamy@apache.org">olamy</a>
33   * @version $Id: TestDefaultContinuumConfiguration.java 764918 2009-04-14 18:34:43Z evenisse $
34   * @since 17 juin 2008
35   */
36  public class TestDefaultContinuumConfiguration
37      extends PlexusInSpringTestCase
38  {
39      private static final Logger log = LoggerFactory.getLogger( TestDefaultContinuumConfiguration.class );
40  
41      private static final String confFile = "target/test-classes/conf/continuum.xml";
42  
43      @Override
44      protected void setUp()
45          throws Exception
46      {
47          log.info( "appserver.base : " + System.getProperty( "appserver.base" ) );
48  
49          File originalConf = new File( getBasedir(), "src/test/resources/conf/continuum.xml" );
50  
51          File confUsed = new File( getBasedir(), confFile );
52          if ( confUsed.exists() )
53          {
54              confUsed.delete();
55          }
56          FileUtils.copyFile( originalConf, confUsed );
57  
58          super.setUp();
59      }
60  
61      public void testLoad()
62          throws Exception
63      {
64          ContinuumConfiguration configuration =
65              (ContinuumConfiguration) lookup( ContinuumConfiguration.class, "default" );
66          assertNotNull( configuration );
67          GeneralConfiguration generalConfiguration = configuration.getGeneralConfiguration();
68          assertNotNull( generalConfiguration );
69          assertNotNull( generalConfiguration.getBaseUrl() );
70          assertEquals( "http://test", generalConfiguration.getBaseUrl() );
71          assertEquals( new File( "myBuildOutputDir" ), generalConfiguration.getBuildOutputDirectory() );
72          assertNotNull( generalConfiguration.getBuildAgents() );
73          org.apache.continuum.configuration.BuildAgentConfiguration buildAgentConfig =
74              generalConfiguration.getBuildAgents().get( 0 );
75          assertEquals( "http://buildagent/xmlrpc", buildAgentConfig.getUrl() );
76          assertEquals( "linux", buildAgentConfig.getDescription() );
77          assertTrue( buildAgentConfig.isEnabled() );
78  
79          // agent group tests        
80          assertNotNull( "agent group", generalConfiguration.getBuildAgentGroups() );
81          BuildAgentGroupConfiguration buildAgentGroupConfig = generalConfiguration.getBuildAgentGroups().get( 0 );
82          assertEquals( "group-agent-1", buildAgentGroupConfig.getName() );
83          BuildAgentConfiguration agentConfig = buildAgentGroupConfig.getBuildAgents().get( 0 );
84          assertEquals( "http://buildagent/xmlrpc", agentConfig.getUrl() );
85          assertEquals( "linux", agentConfig.getDescription() );
86      }
87  
88      public void testDefaultConfiguration()
89          throws Exception
90      {
91          File conf = new File( getBasedir(), confFile );
92          if ( conf.exists() )
93          {
94              conf.delete();
95          }
96          ContinuumConfiguration configuration =
97              (ContinuumConfiguration) lookup( ContinuumConfiguration.class, "default" );
98          assertNotNull( configuration );
99          GeneralConfiguration generalConfiguration = new GeneralConfiguration();
100         generalConfiguration.setBaseUrl( "http://test/zloug" );
101         generalConfiguration.setProxyConfiguration( new ProxyConfiguration() );
102         generalConfiguration.getProxyConfiguration().setProxyHost( "localhost" );
103         generalConfiguration.getProxyConfiguration().setProxyPort( 8080 );
104         File targetDir = new File( getBasedir(), "target" );
105         generalConfiguration.setBuildOutputDirectory( targetDir );
106         BuildAgentConfiguration buildAgentConfiguration = new BuildAgentConfiguration();
107         buildAgentConfiguration.setUrl( "http://buildagent/test" );
108         buildAgentConfiguration.setDescription( "windows xp" );
109         buildAgentConfiguration.setEnabled( false );
110 
111         BuildAgentConfiguration buildAgentConfiguration2 = new BuildAgentConfiguration();
112         buildAgentConfiguration2.setUrl( "http://buildagent-node-2/test" );
113         buildAgentConfiguration2.setDescription( "linux" );
114         buildAgentConfiguration2.setEnabled( true );
115 
116         List<BuildAgentConfiguration> buildAgents = new ArrayList<BuildAgentConfiguration>();
117         buildAgents.add( buildAgentConfiguration );
118         buildAgents.add( buildAgentConfiguration2 );
119         BuildAgentGroupConfiguration buildAgentGroupConfiguration = new BuildAgentGroupConfiguration();
120         buildAgentGroupConfiguration.setName( "secret-agent" );
121         buildAgentGroupConfiguration.setBuildAgents( buildAgents );
122 
123         List<BuildAgentGroupConfiguration> buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>();
124         buildAgentGroups.add( buildAgentGroupConfiguration );
125 
126         generalConfiguration.setBuildAgents( buildAgents );
127         generalConfiguration.setBuildAgentGroups( buildAgentGroups );
128         configuration.setGeneralConfiguration( generalConfiguration );
129         configuration.save();
130 
131         String contents = FileUtils.fileRead( conf );
132         assertTrue( contents.indexOf( "http://test/zloug" ) > 0 );
133         assertTrue( contents.indexOf( "localhost" ) > 0 );
134         assertTrue( contents.indexOf( "8080" ) > 0 );
135         assertTrue( contents.indexOf( "http://buildagent/test" ) > 0 );
136         assertTrue( contents.indexOf( "windows xp" ) > 0 );
137         assertTrue( contents.indexOf( "http://buildagent-node-2/test" ) > 0 );
138         assertTrue( contents.indexOf( "linux" ) > 0 );
139         assertTrue( contents.indexOf( "secret-agent" ) > 0 );
140 
141         configuration.reload();
142         assertEquals( "http://test/zloug", configuration.getGeneralConfiguration().getBaseUrl() );
143         assertEquals( "localhost", configuration.getGeneralConfiguration().getProxyConfiguration().getProxyHost() );
144         assertEquals( 8080, configuration.getGeneralConfiguration().getProxyConfiguration().getProxyPort() );
145         assertEquals( targetDir.getPath(),
146                       configuration.getGeneralConfiguration().getBuildOutputDirectory().getPath() );
147         assertEquals( "http://buildagent/test",
148                       configuration.getGeneralConfiguration().getBuildAgents().get( 0 ).getUrl() );
149         assertFalse( configuration.getGeneralConfiguration().getBuildAgents().get( 0 ).isEnabled() );
150         assertEquals( "http://buildagent-node-2/test",
151                       configuration.getGeneralConfiguration().getBuildAgents().get( 1 ).getUrl() );
152         assertTrue( configuration.getGeneralConfiguration().getBuildAgents().get( 1 ).isEnabled() );
153 
154         assertEquals( "secret-agent",
155                       configuration.getGeneralConfiguration().getBuildAgentGroups().get( 0 ).getName() );
156         assertEquals( "http://buildagent/test",
157                       configuration.getGeneralConfiguration().getBuildAgentGroups().get( 0 ).getBuildAgents().get(
158                           0 ).getUrl() );
159         assertEquals( "http://buildagent-node-2/test",
160                       configuration.getGeneralConfiguration().getBuildAgentGroups().get( 0 ).getBuildAgents().get(
161                           1 ).getUrl() );
162         log.info( "generalConfiguration " + configuration.getGeneralConfiguration().toString() );
163     }
164 }