1 package org.apache.continuum.configuration;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.codehaus.plexus.spring.PlexusInSpringTestCase;
23 import org.codehaus.plexus.util.FileUtils;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27 import java.io.File;
28 import java.util.ArrayList;
29 import java.util.List;
30
31
32
33
34
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 = (ContinuumConfiguration) lookup( ContinuumConfiguration.class,
65 "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 assertTrue( generalConfiguration.isDistributedBuildEnabled() );
73 assertNotNull( generalConfiguration.getBuildAgents() );
74 org.apache.continuum.configuration.BuildAgentConfiguration buildAgentConfig =
75 generalConfiguration.getBuildAgents().get( 0 );
76 assertEquals( "http://buildagent/xmlrpc", buildAgentConfig.getUrl() );
77 assertEquals( "linux", buildAgentConfig.getDescription() );
78 assertTrue( buildAgentConfig.isEnabled() );
79
80
81 assertNotNull( "agent group", generalConfiguration.getBuildAgentGroups() );
82 BuildAgentGroupConfiguration buildAgentGroupConfig = generalConfiguration.getBuildAgentGroups().get( 0 );
83 assertEquals( "group-agent-1", buildAgentGroupConfig.getName() );
84 BuildAgentConfiguration agentConfig = buildAgentGroupConfig.getBuildAgents().get( 0 );
85 assertEquals( "http://buildagent/xmlrpc", agentConfig.getUrl() );
86 assertEquals( "linux", agentConfig.getDescription() );
87 }
88
89 public void testDefaultConfiguration()
90 throws Exception
91 {
92 File conf = new File( getBasedir(), confFile );
93 if ( conf.exists() )
94 {
95 conf.delete();
96 }
97 ContinuumConfiguration configuration = (ContinuumConfiguration) lookup( ContinuumConfiguration.class,
98 "default" );
99 assertNotNull( configuration );
100 GeneralConfiguration generalConfiguration = new GeneralConfiguration();
101 generalConfiguration.setBaseUrl( "http://test/zloug" );
102 generalConfiguration.setProxyConfiguration( new ProxyConfiguration() );
103 generalConfiguration.getProxyConfiguration().setProxyHost( "localhost" );
104 generalConfiguration.getProxyConfiguration().setProxyPort( 8080 );
105 File targetDir = new File( getBasedir(), "target" );
106 generalConfiguration.setBuildOutputDirectory( targetDir );
107 BuildAgentConfiguration buildAgentConfiguration = new BuildAgentConfiguration();
108 buildAgentConfiguration.setUrl( "http://buildagent/test" );
109 buildAgentConfiguration.setDescription( "windows xp" );
110 buildAgentConfiguration.setEnabled( false );
111
112 BuildAgentConfiguration buildAgentConfiguration2 = new BuildAgentConfiguration();
113 buildAgentConfiguration2.setUrl( "http://buildagent-node-2/test" );
114 buildAgentConfiguration2.setDescription( "linux" );
115 buildAgentConfiguration2.setEnabled( true );
116
117 List<BuildAgentConfiguration> buildAgents = new ArrayList<BuildAgentConfiguration>();
118 buildAgents.add( buildAgentConfiguration );
119 buildAgents.add( buildAgentConfiguration2 );
120 BuildAgentGroupConfiguration buildAgentGroupConfiguration = new BuildAgentGroupConfiguration();
121 buildAgentGroupConfiguration.setName( "secret-agent" );
122 buildAgentGroupConfiguration.setBuildAgents( buildAgents );
123
124 List<BuildAgentGroupConfiguration> buildAgentGroups = new ArrayList<BuildAgentGroupConfiguration>();
125 buildAgentGroups.add( buildAgentGroupConfiguration );
126
127 generalConfiguration.setDistributedBuildEnabled( false );
128 generalConfiguration.setBuildAgents( buildAgents );
129 generalConfiguration.setBuildAgentGroups( buildAgentGroups );
130 configuration.setGeneralConfiguration( generalConfiguration );
131 configuration.save();
132
133 String contents = FileUtils.fileRead( conf );
134 assertTrue( contents.indexOf( "http://test/zloug" ) > 0 );
135 assertTrue( contents.indexOf( "localhost" ) > 0 );
136 assertTrue( contents.indexOf( "8080" ) > 0 );
137 assertTrue( contents.indexOf( "http://buildagent/test" ) > 0 );
138 assertTrue( contents.indexOf( "windows xp" ) > 0 );
139 assertTrue( contents.indexOf( "http://buildagent-node-2/test" ) > 0 );
140 assertTrue( contents.indexOf( "linux" ) > 0 );
141 assertTrue( contents.indexOf( "secret-agent" ) > 0 );
142
143 configuration.reload();
144 assertEquals( "http://test/zloug", configuration.getGeneralConfiguration().getBaseUrl() );
145 assertEquals( "localhost", configuration.getGeneralConfiguration().getProxyConfiguration().getProxyHost() );
146 assertEquals( 8080, configuration.getGeneralConfiguration().getProxyConfiguration().getProxyPort() );
147 assertEquals( targetDir.getPath(),
148 configuration.getGeneralConfiguration().getBuildOutputDirectory().getPath() );
149 assertEquals( "http://buildagent/test", configuration.getGeneralConfiguration().getBuildAgents().get(
150 0 ).getUrl() );
151 assertFalse( configuration.getGeneralConfiguration().getBuildAgents().get( 0 ).isEnabled() );
152 assertEquals( "http://buildagent-node-2/test", configuration.getGeneralConfiguration().getBuildAgents().get(
153 1 ).getUrl() );
154 assertTrue( configuration.getGeneralConfiguration().getBuildAgents().get( 1 ).isEnabled() );
155
156 assertEquals( "secret-agent", configuration.getGeneralConfiguration().getBuildAgentGroups().get(
157 0 ).getName() );
158 assertEquals( "http://buildagent/test", configuration.getGeneralConfiguration().getBuildAgentGroups().get(
159 0 ).getBuildAgents().get( 0 ).getUrl() );
160 assertEquals( "http://buildagent-node-2/test",
161 configuration.getGeneralConfiguration().getBuildAgentGroups().get( 0 ).getBuildAgents().get(
162 1 ).getUrl() );
163 assertFalse( configuration.getGeneralConfiguration().isDistributedBuildEnabled() );
164 log.info( "generalConfiguration " + configuration.getGeneralConfiguration().toString() );
165 }
166 }