2020
2121import java .io .File ;
2222import java .util .Arrays ;
23- import java .util .List ;
2423
2524import org .apache .maven .execution .MavenSession ;
2625import org .apache .maven .model .DistributionManagement ;
27- import org .apache .maven .model .Profile ;
2826import org .apache .maven .model .Site ;
2927import org .apache .maven .plugin .MojoExecutionException ;
3028import org .apache .maven .plugin .MojoFailureException ;
@@ -54,12 +52,6 @@ public class PerformReleaseMojoTest extends AbstractMojoTestCase {
5452 public void testPerform () throws Exception {
5553 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform.xml" );
5654
57- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
58- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
59- File checkoutDirectory = getTestFile ("target/checkout" );
60- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
61- builder .setPerformGoals ("deploy site-deploy" );
62-
6355 ReleaseManager mock = mock (ReleaseManager .class );
6456 mojo .setReleaseManager (mock );
6557
@@ -73,19 +65,17 @@ public void testPerform() throws Exception {
7365 assertNotNull (argument .getValue ().getReleaseEnvironment ());
7466 assertNotNull (argument .getValue ().getReactorProjects ());
7567 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
68+
69+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
70+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
71+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
72+
7673 verifyNoMoreInteractions (mock );
7774 }
7875
7976 public void testPerformWithFlatStructure () throws Exception {
8077 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform-with-flat-structure.xml" );
8178
82- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
83- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
84- File checkoutDirectory = getTestFile ("target/checkout" );
85- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
86- builder .setPerformGoals ("deploy" );
87- builder .setScmSourceUrl ("scm:svn:file://localhost/target/svnroot/flat-multi-module/trunk/root-project" );
88-
8979 ReleaseManager mock = mock (ReleaseManager .class );
9080 mojo .setReleaseManager (mock );
9181
@@ -99,25 +89,26 @@ public void testPerformWithFlatStructure() throws Exception {
9989 assertNotNull (argument .getValue ().getReleaseEnvironment ());
10090 assertNotNull (argument .getValue ().getReactorProjects ());
10191 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
92+
93+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
94+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
95+ assertEquals ("deploy" , releaseDescriptor .getPerformGoals ());
96+ assertEquals (
97+ "scm:svn:file://localhost/target/svnroot/flat-multi-module/trunk/root-project" ,
98+ releaseDescriptor .getScmSourceUrl ());
99+
102100 verifyNoMoreInteractions (mock );
103101 }
104102
105103 public void testPerformWithoutSite () throws Exception {
106104 File testFileDirectory = getTestFile ("target/test-classes/mojos/perform/" );
107- PerformReleaseMojo mojo =
108- (PerformReleaseMojo ) lookupMojo ("perform" , new File (testFileDirectory , "perform-without-site.xml" ));
105+ PerformReleaseMojo mojo = lookupMojo ("perform" , new File (testFileDirectory , "perform-without-site.xml" ));
109106 mojo .setBasedir (testFileDirectory );
110107 mojo .setPomFileName ("pom.xml" );
111108
112- MavenProject project = ( MavenProject ) getVariableValueFromObject (mojo , "project" );
109+ MavenProject project = getVariableValueFromObject (mojo , "project" );
113110 setVariableValueToObject (mojo , "session" , newMavenSession (project ));
114111
115- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
116- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
117- File checkoutDirectory = getTestFile ("target/checkout" );
118- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
119- builder .setPerformGoals ("deploy" );
120-
121112 ReleaseManager mock = mock (ReleaseManager .class );
122113 mojo .setReleaseManager (mock );
123114
@@ -132,14 +123,18 @@ public void testPerformWithoutSite() throws Exception {
132123 assertNotNull (argument .getValue ().getReactorProjects ());
133124 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
134125 verifyNoMoreInteractions (mock );
126+
127+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
128+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
129+ assertEquals ("deploy" , releaseDescriptor .getPerformGoals ());
135130 }
136131
137132 private PerformReleaseMojo getMojoWithProjectSite (String fileName ) throws Exception {
138- PerformReleaseMojo mojo = ( PerformReleaseMojo ) lookupMojo ("perform" , new File (workingDirectory , fileName ));
133+ PerformReleaseMojo mojo = lookupMojo ("perform" , new File (workingDirectory , fileName ));
139134 mojo .setBasedir (workingDirectory );
140135 mojo .setPomFileName (fileName );
141136
142- MavenProject project = ( MavenProject ) getVariableValueFromObject (mojo , "project" );
137+ MavenProject project = getVariableValueFromObject (mojo , "project" );
143138 DistributionManagement distributionManagement = new DistributionManagement ();
144139 distributionManagement .setSite (new Site ());
145140 project .setDistributionManagement (distributionManagement );
@@ -152,12 +147,6 @@ private PerformReleaseMojo getMojoWithProjectSite(String fileName) throws Except
152147 public void testPerformWithExecutionException () throws Exception {
153148 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform.xml" );
154149
155- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
156- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
157- File checkoutDirectory = getTestFile ("target/checkout" );
158- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
159- builder .setPerformGoals ("deploy site-deploy" );
160-
161150 ReleaseManager mock = mock (ReleaseManager .class );
162151 doThrow (new ReleaseExecutionException ("..." )).when (mock ).perform (isA (ReleasePerformRequest .class ));
163152 mojo .setReleaseManager (mock );
@@ -180,18 +169,16 @@ public void testPerformWithExecutionException() throws Exception {
180169 assertNotNull (argument .getValue ().getReactorProjects ());
181170 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
182171
172+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
173+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
174+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
175+
183176 verifyNoMoreInteractions (mock );
184177 }
185178
186179 public void testPerformWithExecutionFailure () throws Exception {
187180 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform.xml" );
188181
189- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
190- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
191- File checkoutDirectory = getTestFile ("target/checkout" );
192- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
193- builder .setPerformGoals ("deploy site-deploy" );
194-
195182 ReleaseManager mock = mock (ReleaseManager .class );
196183 ReleaseFailureException cause = new ReleaseFailureException ("..." );
197184 doThrow (cause ).when (mock ).perform (isA (ReleasePerformRequest .class ));
@@ -215,19 +202,16 @@ public void testPerformWithExecutionFailure() throws Exception {
215202 assertNotNull (argument .getValue ().getReactorProjects ());
216203 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
217204
205+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
206+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
207+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
208+
218209 verifyNoMoreInteractions (mock );
219210 }
220211
221212 public void testPerformWithScm () throws Exception {
222213 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform-with-scm.xml" );
223214
224- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
225- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
226- File checkoutDirectory = getTestFile ("target/checkout" );
227- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
228- builder .setPerformGoals ("deploy site-deploy" );
229- builder .setScmSourceUrl ("scm-url" );
230-
231215 ReleaseManager mock = mock (ReleaseManager .class );
232216 mojo .setReleaseManager (mock );
233217
@@ -242,26 +226,18 @@ public void testPerformWithScm() throws Exception {
242226 assertNotNull (argument .getValue ().getReactorProjects ());
243227 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
244228
229+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
230+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
231+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
232+ assertEquals ("scm-url" , releaseDescriptor .getScmSourceUrl ());
233+
245234 verifyNoMoreInteractions (mock );
246235 }
247236
248237 public void testPerformWithProfiles () throws Exception {
249238 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform.xml" );
250239
251- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
252- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
253- File checkoutDirectory = getTestFile ("target/checkout" );
254- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
255- builder .setPerformGoals ("deploy site-deploy" );
256- builder .setAdditionalArguments ("-P prof1,2prof" );
257-
258- MavenSession session = (MavenSession ) getVariableValueFromObject (mojo , "session" );
259- Profile profile1 = new Profile ();
260- profile1 .setId ("prof1" );
261- session .getRequest ().addProfile (profile1 );
262- Profile profile2 = new Profile ();
263- profile2 .setId ("2prof" );
264- session .getRequest ().addProfile (profile2 );
240+ MavenSession session = getVariableValueFromObject (mojo , "session" );
265241 session .getRequest ().setActiveProfiles (Arrays .asList ("prof1" , "2prof" ));
266242
267243 ReleaseManager mock = mock (ReleaseManager .class );
@@ -278,26 +254,19 @@ public void testPerformWithProfiles() throws Exception {
278254 assertNotNull (argument .getValue ().getReactorProjects ());
279255 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
280256
257+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
258+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
259+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
260+ assertTrue (releaseDescriptor .getActivateProfiles ().contains ("prof1" ));
261+ assertTrue (releaseDescriptor .getActivateProfiles ().contains ("2prof" ));
262+
281263 verifyNoMoreInteractions (mock );
282264 }
283265
284266 public void testPerformWithProfilesAndArguments () throws Exception {
285267 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform-with-args.xml" );
286268
287- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
288- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
289- File checkoutDirectory = getTestFile ("target/checkout" );
290- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
291- builder .setPerformGoals ("deploy site-deploy" );
292- builder .setAdditionalArguments ("-Dmaven.test.skip=true -P prof1,2prof" );
293-
294- MavenSession session = (MavenSession ) getVariableValueFromObject (mojo , "session" );
295- Profile profile1 = new Profile ();
296- profile1 .setId ("prof1" );
297- session .getRequest ().addProfile (profile1 );
298- Profile profile2 = new Profile ();
299- profile2 .setId ("2prof" );
300- session .getRequest ().addProfile (profile2 );
269+ MavenSession session = getVariableValueFromObject (mojo , "session" );
301270 session .getRequest ().setActiveProfiles (Arrays .asList ("prof1" , "2prof" ));
302271
303272 ReleaseManager mock = mock (ReleaseManager .class );
@@ -314,18 +283,19 @@ public void testPerformWithProfilesAndArguments() throws Exception {
314283 assertNotNull (argument .getValue ().getReactorProjects ());
315284 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
316285
286+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
287+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
288+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
289+ assertTrue (releaseDescriptor .getActivateProfiles ().contains ("prof1" ));
290+ assertTrue (releaseDescriptor .getActivateProfiles ().contains ("2prof" ));
291+ assertEquals ("-Dmaven.test.skip=true" , releaseDescriptor .getAdditionalArguments ());
292+
317293 verifyNoMoreInteractions (mock );
318294 }
319295
320296 public void testPerformWithMultilineGoals () throws Exception {
321297 PerformReleaseMojo mojo = getMojoWithProjectSite ("perform-with-multiline-goals.xml" );
322298
323- ReleaseDescriptorBuilder builder = createReleaseDescriptorBuilder (mojo );
324- builder .setWorkingDirectory (workingDirectory .getAbsolutePath ());
325- File checkoutDirectory = getTestFile ("target/checkout" );
326- builder .setCheckoutDirectory (checkoutDirectory .getAbsolutePath ());
327- builder .setPerformGoals ("deploy site-deploy" );
328-
329299 ReleaseManager mock = mock (ReleaseManager .class );
330300 mojo .setReleaseManager (mock );
331301
@@ -340,20 +310,11 @@ public void testPerformWithMultilineGoals() throws Exception {
340310 assertNotNull (argument .getValue ().getReactorProjects ());
341311 assertEquals (Boolean .FALSE , argument .getValue ().getDryRun ());
342312
343- verifyNoMoreInteractions (mock );
344- }
345-
346- private ReleaseDescriptorBuilder createReleaseDescriptorBuilder (PerformReleaseMojo mojo ) throws Exception {
347- ReleaseDescriptorBuilder builder = new ReleaseDescriptorBuilder ();
348-
349- @ SuppressWarnings ("unchecked" )
350- List <MavenProject > reactorProjects = (List <MavenProject >) getVariableValueFromObject (mojo , "reactorProjects" );
313+ ReleaseDescriptorBuilder .BuilderReleaseDescriptor releaseDescriptor =
314+ argument .getValue ().getReleaseDescriptorBuilder ().build ();
315+ assertEquals ("deploy site-deploy" , releaseDescriptor .getPerformGoals ());
351316
352- for (MavenProject project : reactorProjects ) {
353- builder .putOriginalVersion (project .getGroupId () + ':' + project .getArtifactId (), project .getVersion ());
354- }
355-
356- return builder ;
317+ verifyNoMoreInteractions (mock );
357318 }
358319
359320 protected void setUp () throws Exception {
0 commit comments