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