Author: brett Date: Thu Apr 27 03:20:21 2006 New Revision: 397510 URL: http://svn.apache.org/viewcvs?rev=397510&view=rev Log: [MRELEASE-98] test cases
Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml (with props) Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.xml Modified: maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java?rev=397510&r1=397509&r2=397510&view=diff ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java (original) +++ maven/plugins/trunk/maven-release-plugin/src/test/java/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.java Thu Apr 27 03:20:21 2006 @@ -9,11 +9,27 @@ import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; import org.apache.maven.plugins.release.ReleaseExecutionException; import org.apache.maven.plugins.release.config.ReleaseConfiguration; +import org.apache.maven.plugins.release.scm.DefaultScmRepositoryConfigurator; +import org.apache.maven.plugins.release.scm.ReleaseScmCommandException; +import org.apache.maven.plugins.release.scm.ReleaseScmRepositoryException; +import org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectBuilder; import org.apache.maven.project.ProjectBuildingException; +import org.apache.maven.scm.ScmException; +import org.apache.maven.scm.command.edit.EditScmResult; +import org.apache.maven.scm.manager.NoSuchScmProviderException; +import org.apache.maven.scm.manager.ScmManager; +import org.apache.maven.scm.manager.ScmManagerStub; +import org.apache.maven.scm.provider.ScmProvider; +import org.apache.maven.scm.provider.ScmProviderStub; +import org.apache.maven.scm.repository.ScmRepositoryException; import org.codehaus.plexus.PlexusTestCase; import org.codehaus.plexus.util.FileUtils; +import org.jmock.cglib.Mock; +import org.jmock.core.constraint.IsEqual; +import org.jmock.core.matcher.InvokeAtLeastOnceMatcher; +import org.jmock.core.stub.ThrowStub; import java.io.File; import java.io.IOException; @@ -64,6 +80,79 @@ assertEquals( "Check the transformed POM", expected, actual ); } + public void testRewriteBasicPomWithEditMode() + throws Exception + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + config.setUseEditMode( true ); + config.mapReleaseVersion( project.getGroupId() + ":" + project.getArtifactId(), "1.0" ); + + phase.execute( config ); + + String expected = readTestProjectFile( "rewrite-for-release/expected-basic-pom.xml" ); + String actual = readTestProjectFile( "rewrite-for-release/basic-pom.xml" ); + assertEquals( "Check the transformed POM", expected, actual ); + } + + public void testRewriteBasicPomWithEditModeFailure() + throws Exception + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + config.setUseEditMode( true ); + config.mapReleaseVersion( project.getGroupId() + ":" + project.getArtifactId(), "1.0" ); + + ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE ); + ScmProviderStub providerStub = (ScmProviderStub) scmManager.getProviderByUrl( config.getUrl() ); + + providerStub.setEditScmResult( new EditScmResult( "", "", "", false ) ); + + try + { + phase.execute( config ); + + fail( "Should have thrown an exception" ); + } + catch ( ReleaseScmCommandException e ) + { + assertNull( "Check no other cause", e.getCause() ); + } + } + + public void testRewriteBasicPomWithEditModeException() + throws Exception + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + config.setUseEditMode( true ); + config.mapReleaseVersion( project.getGroupId() + ":" + project.getArtifactId(), "1.0" ); + + Mock scmProviderMock = new Mock( ScmProvider.class ); + scmProviderMock.expects( new InvokeAtLeastOnceMatcher() ).method( "edit" ).will( + new ThrowStub( new ScmException( "..." ) ) ); + + ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE ); + stub.setScmProvider( (ScmProvider) scmProviderMock.proxy() ); + + try + { + phase.execute( config ); + + fail( "Should have thrown an exception" ); + } + catch ( ReleaseExecutionException e ) + { + assertEquals( "Check cause", ScmException.class, e.getCause().getClass() ); + } + } + public void testRewriteAddSchema() throws ReleaseExecutionException, ProjectBuildingException, IOException { @@ -81,6 +170,88 @@ String expected = readTestProjectFile( "rewrite-for-release/expected-basic-pom-with-schema.xml" ); String actual = readTestProjectFile( "rewrite-for-release/basic-pom.xml" ); assertEquals( "Check the transformed POM", expected, actual ); + } + } + + public void testRewriteUnmappedPom() + throws ReleaseExecutionException, ProjectBuildingException, IOException + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + + try + { + phase.execute( config ); + + fail( "Should have thrown an exception" ); + } + catch ( ReleaseExecutionException e ) + { + assertNull( "Check no cause", e.getCause() ); + } + } + + public void testRewriteBasicPomWithScmRepoException() + throws Exception + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + config.setUseEditMode( true ); + config.mapReleaseVersion( project.getGroupId() + ":" + project.getArtifactId(), "1.0" ); + + Mock scmManagerMock = new Mock( ScmManager.class ); + scmManagerMock.expects( new InvokeAtLeastOnceMatcher() ).method( "makeScmRepository" ).with( + new IsEqual( config.getUrl() ) ).will( new ThrowStub( new ScmRepositoryException( "..." ) ) ); + + ScmManager scmManager = (ScmManager) scmManagerMock.proxy(); + DefaultScmRepositoryConfigurator configurator = + (DefaultScmRepositoryConfigurator) lookup( ScmRepositoryConfigurator.ROLE ); + configurator.setScmManager( scmManager ); + + try + { + phase.execute( config ); + + fail( "Should have thrown an exception" ); + } + catch ( ReleaseScmRepositoryException e ) + { + assertNull( "Check no additional cause", e.getCause() ); + } + } + + public void testRewriteBasicPomWithNoSuchProviderException() + throws Exception + { + File testFile = getCopiedTestFile( "rewrite-for-release/basic-pom.xml" ); + MavenProject project = projectBuilder.build( testFile, localRepository, null ); + + ReleaseConfiguration config = createReleaseConfiguration( Collections.singletonList( project ) ); + config.setUseEditMode( true ); + config.mapReleaseVersion( project.getGroupId() + ":" + project.getArtifactId(), "1.0" ); + + Mock scmManagerMock = new Mock( ScmManager.class ); + scmManagerMock.expects( new InvokeAtLeastOnceMatcher() ).method( "makeScmRepository" ).with( + new IsEqual( config.getUrl() ) ).will( new ThrowStub( new NoSuchScmProviderException( "..." ) ) ); + + ScmManager scmManager = (ScmManager) scmManagerMock.proxy(); + DefaultScmRepositoryConfigurator configurator = + (DefaultScmRepositoryConfigurator) lookup( ScmRepositoryConfigurator.ROLE ); + configurator.setScmManager( scmManager ); + + try + { + phase.execute( config ); + + fail( "Should have thrown an exception" ); + } + catch ( ReleaseExecutionException e ) + { + assertEquals( "Check cause", NoSuchScmProviderException.class, e.getCause().getClass() ); } } Added: maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml?rev=397510&view=auto ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml (added) +++ maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml Thu Apr 27 03:20:21 2006 @@ -0,0 +1,24 @@ +<!-- + ~ 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. + --> + +<component-set> + <components> + <component> + <role>org.apache.maven.scm.manager.ScmManager</role> + <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation> + </component> + </components> +</component-set> Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/RewritePomsForReleasePhaseTest.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Modified: maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.xml URL: http://svn.apache.org/viewcvs/maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.xml?rev=397510&r1=397509&r2=397510&view=diff ============================================================================== --- maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.xml (original) +++ maven/plugins/trunk/maven-release-plugin/src/test/resources/org/apache/maven/plugins/release/phase/ScmCheckModificationsPhaseTest.xml Thu Apr 27 03:20:21 2006 @@ -17,25 +17,6 @@ <component-set> <components> <component> - <role>org.apache.maven.plugins.release.phase.ReleasePhase</role> - <role-hint>scm-check-modifications</role-hint> - <implementation>org.apache.maven.plugins.release.phase.ScmCheckModificationsPhase</implementation> - <requirements> - <requirement> - <role>org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator</role> - </requirement> - </requirements> - </component> - <component> - <role>org.apache.maven.plugins.release.scm.ScmRepositoryConfigurator</role> - <implementation>org.apache.maven.plugins.release.scm.DefaultScmRepositoryConfigurator</implementation> - <requirements> - <requirement> - <role>org.apache.maven.scm.manager.ScmManager</role> - </requirement> - </requirements> - </component> - <component> <role>org.apache.maven.scm.manager.ScmManager</role> <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation> </component>