Return-Path: Delivered-To: apmail-maven-commits-archive@www.apache.org Received: (qmail 50780 invoked from network); 3 May 2006 07:12:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 3 May 2006 07:12:46 -0000 Received: (qmail 68261 invoked by uid 500); 3 May 2006 07:12:35 -0000 Delivered-To: apmail-maven-commits-archive@maven.apache.org Received: (qmail 68106 invoked by uid 500); 3 May 2006 07:12:34 -0000 Mailing-List: contact commits-help@maven.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@maven.apache.org Delivered-To: mailing list commits@maven.apache.org Received: (qmail 68074 invoked by uid 99); 3 May 2006 07:12:34 -0000 Received: from asf.osuosl.org (HELO asf.osuosl.org) (140.211.166.49) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 03 May 2006 00:12:34 -0700 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Wed, 03 May 2006 00:12:33 -0700 Received: (qmail 50247 invoked by uid 65534); 3 May 2006 07:12:08 -0000 Message-ID: <20060503071208.50221.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r399182 - in /maven/plugins/trunk/maven-release-plugin/src: main/java/org/apache/maven/plugins/release/ test/java/org/apache/maven/plugins/release/ test/resources/mojos/perform/ Date: Wed, 03 May 2006 07:11:38 -0000 To: commits@maven.apache.org From: brett@apache.org X-Mailer: svnmailer-1.0.8 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: brett Date: Wed May 3 00:11:02 2006 New Revision: 399182 URL: http://svn.apache.org/viewcvs?rev=399182&view=rev Log: [MRELEASE-98] test perform mojo Added: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java (with props) maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/ maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml (with props) maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml (with props) maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml (with props) Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java?rev=399182&r1=399181&r2=399182&view=diff ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java (original) +++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/AbstractReleaseMojo.java Wed May 3 00:11:02 2006 @@ -151,4 +151,9 @@ { this.releaseManager = releaseManager; } + + Settings getSettings() + { + return settings; + } } Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java?rev=399182&r1=399181&r2=399182&view=diff ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java (original) +++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PerformReleaseMojo.java Wed May 3 00:11:02 2006 @@ -26,6 +26,7 @@ * Perform a release from SCM * * @author Emmanuel Venisse + * @author Brett Porter * @version $Id$ * @aggregator * @goal perform @@ -43,7 +44,7 @@ /** * The checkout directory. * - * @parameter expression="${project.build.directory}/checkout" + * @parameter default-value="${project.build.directory}/checkout" * @required */ private File workingDirectory; @@ -86,5 +87,4 @@ throw new MojoFailureException( e.getMessage() ); } } - } Modified: maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java?rev=399182&r1=399181&r2=399182&view=diff ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java (original) +++ maven/plugins/trunk/maven-release-plugin/src/main/java/org/apache/maven/plugins/release/PrepareReleaseMojo.java Wed May 3 00:11:02 2006 @@ -28,6 +28,7 @@ * @author John Casey * @author Emmanuel Venisse * @author Jason van Zyl + * @author Brett Porter * @version $Id$ * @aggregator * @goal prepare Added: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java?rev=399182&view=auto ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java (added) +++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java Wed May 3 00:11:02 2006 @@ -0,0 +1,200 @@ +package org.apache.maven.plugins.release; + +/* + * Copyright 2005-2006 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import org.apache.maven.model.Profile; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.apache.maven.plugin.testing.AbstractMojoTestCase; +import org.apache.maven.plugins.release.config.ReleaseConfiguration; +import org.apache.maven.project.MavenProject; +import org.jmock.Mock; +import org.jmock.core.Constraint; +import org.jmock.core.constraint.IsEqual; +import org.jmock.core.matcher.InvokeOnceMatcher; +import org.jmock.core.stub.ThrowStub; + +import java.io.File; +import java.util.Arrays; + +/** + * Test release:perform. + * + * @author Brett Porter + */ +public class PerformReleaseMojoTest + extends AbstractMojoTestCase +{ + public void testPerform() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + mojo.execute(); + + assertTrue( true ); + } + + public void testPerformWithExecutionException() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ).will( + new ThrowStub( new ReleaseExecutionException( "..." ) ) ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + try + { + mojo.execute(); + + fail( "Should have thrown an exception" ); + } + catch ( MojoExecutionException e ) + { + assertEquals( "Check cause", ReleaseExecutionException.class, e.getCause().getClass() ); + } + } + + public void testPerformWithExecutionFailure() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ).will( + new ThrowStub( new ReleaseFailureException( "..." ) ) ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + try + { + mojo.execute(); + + fail( "Should have thrown an exception" ); + } + catch ( MojoFailureException e ) + { + assertNull( "Check no cause", e.getCause() ); + } + } + + public void testPerformWithScm() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform-with-scm.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + releaseConfiguration.setUrl( "scm-url" ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + mojo.execute(); + + assertTrue( true ); + } + + public void testPerformWithProfiles() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + releaseConfiguration.setAdditionalArguments( "-P prof1,2prof" ); + + MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" ); + Profile profile1 = new Profile(); + profile1.setId( "prof1" ); + Profile profile2 = new Profile(); + profile2.setId( "2prof" ); + project.setActiveProfiles( Arrays.asList( new Profile[]{profile1, profile2} ) ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + mojo.execute(); + + assertTrue( true ); + } + + public void testPerformWithProfilesAndArguments() + throws Exception + { + PerformReleaseMojo mojo = (PerformReleaseMojo) lookupMojo( "perform", getTestFile( + "target/test-classes/mojos/perform/perform-with-args.xml" ) ); + + ReleaseConfiguration releaseConfiguration = new ReleaseConfiguration(); + releaseConfiguration.setSettings( mojo.getSettings() ); + releaseConfiguration.setAdditionalArguments( "-Dmaven.test.skip=true -P prof1,2prof" ); + + MavenProject project = (MavenProject) getVariableValueFromObject( mojo, "project" ); + Profile profile1 = new Profile(); + profile1.setId( "prof1" ); + Profile profile2 = new Profile(); + profile2.setId( "2prof" ); + project.setActiveProfiles( Arrays.asList( new Profile[]{profile1, profile2} ) ); + + Mock mock = new Mock( ReleaseManager.class ); + Constraint[] constraints = new Constraint[]{new IsEqual( releaseConfiguration ), + new IsEqual( new File( getBasedir(), "target/checkout" ) ), new IsEqual( "deploy site-deploy" ), + new IsEqual( Boolean.TRUE )}; + mock.expects( new InvokeOnceMatcher() ).method( "perform" ).with( constraints ); + mojo.setReleaseManager( (ReleaseManager) mock.proxy() ); + + mojo.execute(); + + assertTrue( true ); + } +} Propchange: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/PerformReleaseMojoTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml?rev=399182&view=auto ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml (added) +++ maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml Wed May 3 00:11:02 2006 @@ -0,0 +1,32 @@ + + + + + + + maven-release-plugin + + + + ${basedir}/target/checkout + true + -Dmaven.test.skip=true + + + + + \ No newline at end of file Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-args.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml?rev=399182&view=auto ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml (added) +++ maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml Wed May 3 00:11:02 2006 @@ -0,0 +1,32 @@ + + + + + + + maven-release-plugin + + + + ${basedir}/target/checkout + true + scm-url + + + + + \ No newline at end of file Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform-with-scm.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml?rev=399182&view=auto ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml (added) +++ maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml Wed May 3 00:11:02 2006 @@ -0,0 +1,31 @@ + + + + + + + maven-release-plugin + + + + ${basedir}/target/checkout + true + + + + + \ No newline at end of file Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/mojos/perform/perform.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision