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 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
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 =
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
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 }