1 package org.apache.maven.plugin.invoker;
2
3
4
5
6
7
8
9
10
11
12
13 import java.io.File;
14 import java.util.Arrays;
15 import java.util.Collections;
16 import java.util.Properties;
17
18 import org.apache.maven.shared.invoker.DefaultInvocationRequest;
19 import org.apache.maven.shared.invoker.InvocationRequest;
20
21 import junit.framework.TestCase;
22
23
24
25
26
27
28
29 public class InvokerPropertiesTest
30 extends TestCase
31 {
32
33 public void testConstructorNullSafe()
34 throws Exception
35 {
36 InvokerProperties facade = new InvokerProperties( null );
37 assertNotNull( facade.getProperties() );
38 }
39
40 public void testGetInvokerProperty()
41 throws Exception
42 {
43 Properties props = new Properties();
44 InvokerProperties facade = new InvokerProperties( props );
45
46 assertNull( facade.get( "undefined-key", 0 ) );
47
48 props.setProperty( "key", "value" );
49 assertEquals( "value", facade.get( "key", 1 ) );
50
51 props.setProperty( "key.1", "another-value" );
52 assertEquals( "another-value", facade.get( "key", 1 ) );
53 assertEquals( "value", facade.get( "key", 2 ) );
54 }
55
56 public void testGetJobName()
57 throws Exception
58 {
59 Properties props = new Properties();
60 final String jobName = "Build Job name";
61 props.put( "invoker.name", jobName );
62 InvokerProperties facade = new InvokerProperties( props );
63
64 assertEquals( jobName, facade.getJobName() );
65 }
66
67 public void testIsExpectedResult()
68 throws Exception
69 {
70 Properties props = new Properties();
71 InvokerProperties facade = new InvokerProperties( props );
72
73 assertTrue( facade.isExpectedResult( 0, 0 ) );
74 assertFalse( facade.isExpectedResult( 1, 0 ) );
75
76 props.setProperty( "invoker.buildResult", "success" );
77 assertTrue( facade.isExpectedResult( 0, 0 ) );
78 assertFalse( facade.isExpectedResult( 1, 0 ) );
79
80 props.setProperty( "invoker.buildResult", "failure" );
81 assertFalse( facade.isExpectedResult( 0, 0 ) );
82 assertTrue( facade.isExpectedResult( 1, 0 ) );
83 }
84
85 public void testConfigureRequestGoals()
86 throws Exception
87 {
88 Properties props = new Properties();
89 InvokerProperties facade = new InvokerProperties( props );
90
91 InvocationRequest request = new DefaultInvocationRequest();
92
93 request.setGoals( Collections.singletonList( "test" ) );
94 facade.configureInvocation( request, 0 );
95 assertEquals( Collections.singletonList( "test" ), request.getGoals() );
96
97 props.setProperty( "invoker.goals", "verify" );
98 facade.configureInvocation( request, 0 );
99 assertEquals( Collections.singletonList( "verify" ), request.getGoals() );
100
101 props.setProperty( "invoker.goals", " " );
102 facade.configureInvocation( request, 0 );
103 assertEquals( Arrays.asList( new String[0] ), request.getGoals() );
104
105 props.setProperty( "invoker.goals", " clean , test verify " );
106 facade.configureInvocation( request, 0 );
107 assertEquals( Arrays.asList( new String[] { "clean", "test", "verify" } ), request.getGoals() );
108
109 props.setProperty( "invoker.goals", "" );
110 facade.configureInvocation( request, 0 );
111 assertEquals( Arrays.asList( new String[0] ), request.getGoals() );
112 }
113
114 public void testConfigureRequestProfiles()
115 throws Exception
116 {
117 Properties props = new Properties();
118 InvokerProperties facade = new InvokerProperties( props );
119
120 InvocationRequest request = new DefaultInvocationRequest();
121
122 request.setProfiles( Collections.singletonList( "test" ) );
123 facade.configureInvocation( request, 0 );
124 assertEquals( Collections.singletonList( "test" ), request.getProfiles() );
125
126 props.setProperty( "invoker.profiles", "verify" );
127 facade.configureInvocation( request, 0 );
128 assertEquals( Collections.singletonList( "verify" ), request.getProfiles() );
129
130 props.setProperty( "invoker.profiles", " " );
131 facade.configureInvocation( request, 0 );
132 assertEquals( Arrays.asList( new String[0] ), request.getProfiles() );
133
134 props.setProperty( "invoker.profiles", " clean , test verify ," );
135 facade.configureInvocation( request, 0 );
136 assertEquals( Arrays.asList( new String[] { "clean", "test", "verify" } ), request.getProfiles() );
137
138 props.setProperty( "invoker.profiles", "" );
139 facade.configureInvocation( request, 0 );
140 assertEquals( Arrays.asList( new String[0] ), request.getProfiles() );
141 }
142
143 public void testConfigureRequestProject()
144 throws Exception
145 {
146 Properties props = new Properties();
147 InvokerProperties facade = new InvokerProperties( props );
148
149 InvocationRequest request = new DefaultInvocationRequest();
150
151 File tempPom = File.createTempFile( "maven-invoker-plugin-test", ".pom" );
152 File tempDir = tempPom.getParentFile();
153
154 request.setBaseDirectory( tempDir );
155 facade.configureInvocation( request, 0 );
156 assertEquals( tempDir, request.getBaseDirectory() );
157 assertEquals( null, request.getPomFile() );
158
159 props.setProperty( "invoker.project", tempPom.getName() );
160 request.setBaseDirectory( tempDir );
161 facade.configureInvocation( request, 0 );
162 assertEquals( tempDir, request.getBaseDirectory() );
163 assertEquals( tempPom, request.getPomFile() );
164
165 props.setProperty( "invoker.project", "" );
166 request.setBaseDirectory( tempDir );
167 facade.configureInvocation( request, 0 );
168 assertEquals( tempDir, request.getBaseDirectory() );
169 assertEquals( null, request.getPomFile() );
170
171 tempPom.delete();
172 }
173
174 public void testConfigureRequestMavenOpts()
175 throws Exception
176 {
177 Properties props = new Properties();
178 InvokerProperties facade = new InvokerProperties( props );
179
180 InvocationRequest request = new DefaultInvocationRequest();
181
182 request.setMavenOpts( "default" );
183 facade.configureInvocation( request, 0 );
184 assertEquals( "default", request.getMavenOpts() );
185
186 props.setProperty( "invoker.mavenOpts", "-Xmx512m" );
187 facade.configureInvocation( request, 0 );
188 assertEquals( "-Xmx512m", request.getMavenOpts() );
189 }
190
191 public void testConfigureRequestFailureBehavior()
192 throws Exception
193 {
194 Properties props = new Properties();
195 InvokerProperties facade = new InvokerProperties( props );
196
197 InvocationRequest request = new DefaultInvocationRequest();
198
199 request.setFailureBehavior( "fail-at-end" );
200 facade.configureInvocation( request, 0 );
201 assertEquals( "fail-at-end", request.getFailureBehavior() );
202
203 props.setProperty( "invoker.failureBehavior", "fail-never" );
204 facade.configureInvocation( request, 0 );
205 assertEquals( "fail-never", request.getFailureBehavior() );
206 }
207
208 public void testConfigureRequestRecursion()
209 throws Exception
210 {
211 Properties props = new Properties();
212 InvokerProperties facade = new InvokerProperties( props );
213
214 InvocationRequest request = new DefaultInvocationRequest();
215
216 request.setRecursive( true );
217 facade.configureInvocation( request, 0 );
218 assertTrue( request.isRecursive() );
219 request.setRecursive( false );
220 facade.configureInvocation( request, 0 );
221 assertFalse( request.isRecursive() );
222
223 props.setProperty( "invoker.nonRecursive", "true" );
224 facade.configureInvocation( request, 0 );
225 assertFalse( request.isRecursive() );
226
227 props.setProperty( "invoker.nonRecursive", "false" );
228 facade.configureInvocation( request, 0 );
229 assertTrue( request.isRecursive() );
230 }
231
232 public void testConfigureRequestOffline()
233 throws Exception
234 {
235 Properties props = new Properties();
236 InvokerProperties facade = new InvokerProperties( props );
237
238 InvocationRequest request = new DefaultInvocationRequest();
239
240 request.setOffline( true );
241 facade.configureInvocation( request, 0 );
242 assertTrue( request.isOffline() );
243 request.setOffline( false );
244 facade.configureInvocation( request, 0 );
245 assertFalse( request.isOffline() );
246
247 props.setProperty( "invoker.offline", "true" );
248 facade.configureInvocation( request, 0 );
249 assertTrue( request.isOffline() );
250
251 props.setProperty( "invoker.offline", "false" );
252 facade.configureInvocation( request, 0 );
253 assertFalse( request.isOffline() );
254 }
255
256 public void testIsInvocationDefined()
257 throws Exception
258 {
259 Properties props = new Properties();
260 InvokerProperties facade = new InvokerProperties( props );
261
262 assertFalse( facade.isInvocationDefined( 1 ) );
263
264 props.setProperty( "invoker.goals", "install" );
265 assertFalse( facade.isInvocationDefined( 1 ) );
266
267 props.setProperty( "invoker.goals.2", "install" );
268 assertFalse( facade.isInvocationDefined( 1 ) );
269 assertTrue( facade.isInvocationDefined( 2 ) );
270 assertFalse( facade.isInvocationDefined( 3 ) );
271 }
272 }