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>


Reply via email to