You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by rf...@apache.org on 2017/12/24 14:50:04 UTC

[maven-release] branch master updated (25d0651 -> 64a0f03)

This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git.


    from 25d0651  Fix invalid project, flatten module should adjust relativePath
     new d0b7a54  Verify update-versions and rollback without ReflectionUtils
     new 2fdfcc3  Move unittests to proper unit
     new c888e53  replace whitebox usage
     new 64a0f03  Remove all reflection calls in tests

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../shared/release/DefaultReleaseManagerTest.java  | 228 +++++----------------
 ...tractEditModeRewritingReleasePhaseTestCase.java |   6 +-
 .../AbstractRewritingReleasePhaseTestCase.java     |  41 ++--
 .../phase/BranchInputVariablesPhaseTest.java       |   9 -
 .../release/phase/CheckoutProjectFromScmTest.java  |  64 ++++++
 .../phase/GenerateReleasePomsPhaseTest.java        |   5 +-
 .../shared/release/phase/ScmBranchPhaseTest.java   |  26 +--
 .../phase/ScmCheckModificationsPhaseTest.java      |  30 +--
 .../phase/ScmCommitPreparationPhaseTest.java       |  31 +--
 .../shared/release/phase/ScmTagPhaseTest.java      |  29 +--
 .../shared/release/stubs/NamingPolicyStub.java     |  78 +++----
 .../maven/shared/release/stubs/ScmManagerStub.java |  33 ++-
 .../shared/release/DefaultReleaseManagerTest.xml   |  16 ++
 ...eTest.xml => BranchInputVariablesPhaseTest.xml} |   5 +
 .../release/phase/GenerateReleasePomsPhaseTest.xml |   2 +-
 ...eTest.xml => RewritePomsForBranchPhaseTest.xml} |   0
 .../phase/ScmCheckModificationsPhaseTest.xml       |   2 +-
 .../phase/ScmCommitPreparationPhaseTest.xml        |   2 +-
 18 files changed, 256 insertions(+), 351 deletions(-)
 copy maven-release-plugin/src/it/setup/maven-project-naming-stub-policy/src/main/java/org/apache/maven/shared/release/policy/stub/StubNamingPolicy.java => maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/NamingPolicyStub.java (76%)
 copy maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/{ScmTagPhaseTest.xml => BranchInputVariablesPhaseTest.xml} (85%)
 copy maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/{RewritePomsForReleasePhaseTest.xml => RewritePomsForBranchPhaseTest.xml} (100%)

-- 
To stop receiving notification emails like this one, please contact
['"commits@maven.apache.org" <co...@maven.apache.org>'].

[maven-release] 04/04: Remove all reflection calls in tests

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 64a0f03fc7f1d6f7bceca35b0780c98d3d16755d
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Dec 24 15:49:50 2017 +0100

    Remove all reflection calls in tests
---
 .../phase/AbstractEditModeRewritingReleasePhaseTestCase.java        | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
index cb544b6..ca8aca5 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractEditModeRewritingReleasePhaseTestCase.java
@@ -45,8 +45,8 @@ import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
+import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Base class with tests for rewriting POMs with edit mode.
@@ -86,7 +86,7 @@ public abstract class AbstractEditModeRewritingReleasePhaseTestCase
 
         ScmManagerStub scmManager = new ScmManagerStub();
         DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
+            (DefaultScmRepositoryConfigurator) lookup( ScmRepositoryConfigurator.ROLE, "default" );
         configurator.setScmManager( scmManager );
 
         ScmProviderStub providerStub = (ScmProviderStub) scmManager.getProviderByUrl( config.getScmSourceUrl() );
@@ -120,7 +120,7 @@ public abstract class AbstractEditModeRewritingReleasePhaseTestCase
 
         ScmManagerStub scmManager = new ScmManagerStub();
         DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
+            (DefaultScmRepositoryConfigurator) lookup( ScmRepositoryConfigurator.ROLE, "default" );
         configurator.setScmManager( scmManager );
         scmManager.setScmProvider( scmProviderMock );
 

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-release] 01/04: Verify update-versions and rollback without ReflectionUtils

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit d0b7a54d5ad1323999cda65a63ae58aa4049830b
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Dec 23 20:31:16 2017 +0100

    Verify update-versions and rollback without ReflectionUtils
---
 .../shared/release/DefaultReleaseManagerTest.java  | 128 +++++++--------------
 .../shared/release/DefaultReleaseManagerTest.xml   |  16 +++
 2 files changed, 55 insertions(+), 89 deletions(-)

diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
index 8a5e8bc..f769f6c 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
@@ -45,14 +45,12 @@ import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
-import org.codehaus.plexus.util.ReflectionUtils;
 import org.mockito.internal.util.reflection.Whitebox;
 
 import java.io.File;
 import java.io.IOException;
 import java.util.Collections;
 import java.util.List;
-import java.util.Map;
 
 import static org.mockito.Mockito.*;
 
@@ -85,16 +83,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 executed", phase.isExecuted() );
         assertFalse( "step1 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 executed", phase.isExecuted() );
         assertFalse( "step2 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 executed", phase.isExecuted() );
         assertFalse( "step3 not simulated", phase.isSimulated() );
     }
@@ -109,16 +104,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertFalse( "step1 not executed", phase.isExecuted() );
         assertFalse( "step1 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 executed", phase.isExecuted() );
         assertFalse( "step2 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 executed", phase.isExecuted() );
         assertFalse( "step3 not simulated", phase.isSimulated() );
     }
@@ -133,16 +125,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null, false, false );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 executed", phase.isExecuted() );
         assertFalse( "step1 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 executed", phase.isExecuted() );
         assertFalse( "step2 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 executed", phase.isExecuted() );
         assertFalse( "step3 not simulated", phase.isSimulated() );
     }
@@ -157,16 +146,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertFalse( "step1 not executed", phase.isExecuted() );
         assertFalse( "step1 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertFalse( "step2 not executed", phase.isExecuted() );
         assertFalse( "step2 not simulated", phase.isSimulated() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertFalse( "step3 not executed", phase.isExecuted() );
         assertFalse( "step3 not simulated", phase.isSimulated() );
     }
@@ -181,16 +167,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 executed", phase.isExecuted() );
         assertFalse( "step1 not simulated", phase.isSimulated() );
-        phase = phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 executed", phase.isExecuted() );
         assertFalse( "step2 not simulated", phase.isSimulated() );
-        phase = phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 executed", phase.isExecuted() );
         assertFalse( "step3 not simulated", phase.isSimulated() );
     }
@@ -205,16 +188,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null, true, true );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 simulated", phase.isSimulated() );
         assertFalse( "step1 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 simulated", phase.isSimulated() );
         assertFalse( "step2 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 simulated", phase.isSimulated() );
         assertFalse( "step3 not executed", phase.isExecuted() );
     }
@@ -229,16 +209,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null, true, true );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertFalse( "step1 not simulated", phase.isSimulated() );
         assertFalse( "step1 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 simulated", phase.isSimulated() );
         assertFalse( "step2 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 simulated", phase.isSimulated() );
         assertFalse( "step3 not executed", phase.isExecuted() );
     }
@@ -253,16 +230,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null, true, true );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertFalse( "step1 not simulated", phase.isSimulated() );
         assertFalse( "step1 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertFalse( "step2 not simulated", phase.isSimulated() );
         assertFalse( "step2 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertFalse( "step3 not simulated", phase.isSimulated() );
         assertFalse( "step3 not executed", phase.isExecuted() );
     }
@@ -277,16 +251,13 @@ public class DefaultReleaseManagerTest
 
         releaseManager.prepare( new ReleaseDescriptor(), new DefaultReleaseEnvironment(), null, true, true );
 
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 simulated", phase.isSimulated() );
         assertFalse( "step1 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 simulated", phase.isSimulated() );
         assertFalse( "step2 not executed", phase.isExecuted() );
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 simulated", phase.isSimulated() );
         assertFalse( "step3 not executed", phase.isExecuted() );
     }
@@ -389,19 +360,16 @@ public class DefaultReleaseManagerTest
         releaseManager.clean( releaseDescriptor, null, null );
 
         // verify
-        @SuppressWarnings("unchecked")
-        Map<String,ReleasePhaseStub> phases = getContainer().lookupMap( ReleasePhase.ROLE );
-
-        ReleasePhaseStub phase = (ReleasePhaseStub) phases.get( "step1" );
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step1" );
         assertTrue( "step1 not cleaned", phase.isCleaned() );
 
-        phase = (ReleasePhaseStub) phases.get( "step2" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step2" );
         assertTrue( "step2 not cleaned", phase.isCleaned() );
 
-        phase = (ReleasePhaseStub) phases.get( "step3" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "step3" );
         assertTrue( "step3 not cleaned", phase.isCleaned() );
 
-        phase = (ReleasePhaseStub) phases.get( "branch1" );
+        phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "branch1" );
         assertTrue( "branch1 not cleaned", phase.isCleaned() );
         
         verify( configStoreMock ).delete( releaseDescriptor );
@@ -719,47 +687,29 @@ public class DefaultReleaseManagerTest
     }
 
     // MRELEASE-761
-    @SuppressWarnings( "unchecked" )
     public void testRollbackCall()
         throws Exception
     {
         DefaultReleaseManager defaultReleaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleasePhase rollbackPhase1 = mock( ReleasePhase.class );
-        ReflectionUtils.setVariableValueInObject( defaultReleaseManager, "rollbackPhases",
-                                                  Collections.singletonList( "rollbackPhase1" ) );
-        Map<String, ReleasePhase> releasePhases =
-            (Map<String, ReleasePhase>) ReflectionUtils.getValueIncludingSuperclasses( "releasePhases",
-                                                                                       defaultReleaseManager );
-        releasePhases.put( "rollbackPhase1", rollbackPhase1 );
-
         defaultReleaseManager.rollback( configStore.getReleaseConfiguration(), (ReleaseEnvironment) null, null );
-
-        verify( rollbackPhase1 ).execute( any( ReleaseDescriptor.class ), any( ReleaseEnvironment.class ),
-                                                any( List.class ) );
-        verifyNoMoreInteractions( rollbackPhase1 );
+        
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "rollbackPhase1" );
+        
+        assertTrue( "rollbackPhase1 executed", phase.isExecuted() );
     }
 
 
     // MRELEASE-765
-    @SuppressWarnings( "unchecked" )
     public void testUpdateVersionsCall()
         throws Exception
     {
         DefaultReleaseManager defaultReleaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
 
-        ReleasePhase updateVersionsPhase1 = mock( ReleasePhase.class );
-        ReflectionUtils.setVariableValueInObject( defaultReleaseManager, "updateVersionsPhases",
-                                                  Collections.singletonList( "updateVersionsPhase1" ) );
-        Map<String, ReleasePhase> releasePhases =
-            (Map<String, ReleasePhase>) ReflectionUtils.getValueIncludingSuperclasses( "releasePhases",
-                                                                                       defaultReleaseManager );
-        releasePhases.put( "updateVersionsPhase1", updateVersionsPhase1 );
-
         defaultReleaseManager.updateVersions( configStore.getReleaseConfiguration(), null, null );
-
-        verify( updateVersionsPhase1 ).execute( any( ReleaseDescriptor.class ), any( ReleaseEnvironment.class ),
-                                                any( List.class ) );
-        verifyNoMoreInteractions( updateVersionsPhase1 );
+        
+        ReleasePhaseStub phase = (ReleasePhaseStub) lookup( ReleasePhase.ROLE, "updateVersionsPhase1" );
+        
+        assertTrue( "updateVersionsPhase1 executed", phase.isExecuted() );
     }
 }
\ No newline at end of file
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml
index d9758b1..ff18c6a 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/DefaultReleaseManagerTest.xml
@@ -48,6 +48,12 @@
         <branchPhases>
           <phase>branch1</phase>
         </branchPhases>
+        <rollbackPhases>
+          <phase>rollbackPhase1</phase>
+        </rollbackPhases>
+        <updateVersionsPhases>
+          <phase>updateVersionsPhase1</phase>
+        </updateVersionsPhases>
       </configuration>
     </component>
     <component>
@@ -97,6 +103,16 @@
       <implementation>org.apache.maven.shared.release.phase.ReleasePhaseStub</implementation>
     </component>
     <component>
+      <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+      <role-hint>rollbackPhase1</role-hint>
+      <implementation>org.apache.maven.shared.release.phase.ReleasePhaseStub</implementation>
+    </component>
+    <component>
+      <role>org.apache.maven.shared.release.phase.ReleasePhase</role>
+      <role-hint>updateVersionsPhase1</role-hint>
+      <implementation>org.apache.maven.shared.release.phase.ReleasePhaseStub</implementation>
+    </component>
+    <component>
       <role>org.apache.maven.scm.manager.ScmManager</role>
       <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
     </component>

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-release] 03/04: replace whitebox usage

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit c888e537975b91d47c975cb21943f51f896aa128
Author: rfscholte <rf...@apache.org>
AuthorDate: Sun Dec 24 11:55:56 2017 +0100

    replace whitebox usage
---
 .../AbstractRewritingReleasePhaseTestCase.java     | 41 +++++++++-------------
 .../phase/BranchInputVariablesPhaseTest.java       |  9 -----
 .../phase/GenerateReleasePomsPhaseTest.java        |  5 ++-
 .../shared/release/phase/ScmBranchPhaseTest.java   | 26 ++++----------
 .../phase/ScmCheckModificationsPhaseTest.java      | 30 ++++------------
 .../phase/ScmCommitPreparationPhaseTest.java       | 31 ++++------------
 .../shared/release/phase/ScmTagPhaseTest.java      | 29 ++++-----------
 .../shared/release/stubs/NamingPolicyStub.java     | 40 +++++++++++++++++++++
 .../maven/shared/release/stubs/ScmManagerStub.java |  4 +--
 ...eTest.xml => BranchInputVariablesPhaseTest.xml} |  8 ++---
 .../release/phase/GenerateReleasePomsPhaseTest.xml |  2 +-
 ...eTest.xml => RewritePomsForBranchPhaseTest.xml} |  4 ---
 .../phase/ScmCheckModificationsPhaseTest.xml       |  2 +-
 .../phase/ScmCommitPreparationPhaseTest.xml        |  2 +-
 14 files changed, 93 insertions(+), 140 deletions(-)

diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
index 0b7db6d..08cfdad 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/AbstractRewritingReleasePhaseTestCase.java
@@ -24,9 +24,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.when;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -38,7 +36,6 @@ import java.util.List;
 import org.apache.maven.project.MavenProject;
 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.repository.ScmRepositoryException;
 import org.apache.maven.shared.release.ReleaseExecutionException;
@@ -48,13 +45,13 @@ import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.scm.ScmRepositoryConfigurator;
+import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.apache.maven.shared.release.transform.jdom.JDomModelETLFactory;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.Parameterized;
 import org.junit.runners.Parameterized.Parameters;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Base class with tests for rewriting POMs.
@@ -554,14 +551,14 @@ public abstract class AbstractRewritingReleasePhaseTestCase
         List<MavenProject> reactorProjects = createReactorProjectsFromBasicPom();
         ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
         config.setScmUseEditMode( true );
+        config.setScmSourceUrl( "scm:svn:fail" );
         mapNextVersion( config, "groupId:artifactId" );
-
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( config.getScmSourceUrl() ) ).thenThrow( new ScmRepositoryException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        
+        ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE );
+        if ( scmManager instanceof ScmManagerStub )
+        {
+            ((ScmManagerStub) scmManager ).setException( new ScmRepositoryException( "..." ) );
+        }
 
         try
         {
@@ -573,9 +570,6 @@ public abstract class AbstractRewritingReleasePhaseTestCase
         {
             assertNull( "Check no additional cause", e.getCause() );
         }
-
-        verify( scmManagerMock ).makeScmRepository( config.getScmSourceUrl() );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
@@ -586,14 +580,14 @@ public abstract class AbstractRewritingReleasePhaseTestCase
         List<MavenProject> reactorProjects = createReactorProjectsFromBasicPom();
         ReleaseDescriptor config = createDescriptorFromBasicPom( reactorProjects );
         config.setScmUseEditMode( true );
+        config.setScmSourceUrl( "scm:fail:path" );
         mapNextVersion( config, "groupId:artifactId" );
-
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( config.getScmSourceUrl() ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        
+        ScmManager scmManager = (ScmManager) lookup( ScmManager.ROLE );
+        if ( scmManager instanceof ScmManagerStub )
+        {
+            ((ScmManagerStub) scmManager ).setException( new NoSuchScmProviderException( "..." ) );;
+        }
 
         // execute
         try
@@ -604,12 +598,9 @@ public abstract class AbstractRewritingReleasePhaseTestCase
         }
         catch ( ReleaseExecutionException e )
         {
+            // verify
             assertEquals( "Check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( config.getScmSourceUrl() );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
index 208d1e0..512a359 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.java
@@ -38,13 +38,9 @@ import org.apache.maven.shared.release.PlexusJUnit4TestCase;
 import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.policy.naming.NamingPolicy;
-import org.apache.maven.shared.release.policy.naming.NamingPolicyRequest;
-import org.apache.maven.shared.release.policy.naming.NamingPolicyResult;
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the variable input phase.
@@ -317,13 +313,8 @@ public class BranchInputVariablesPhaseTest
         releaseDescriptor.setProjectNamingPolicyId( "stub" );
         releaseDescriptor.setScmSourceUrl( "scm:svn:file://localhost/tmp/scm-repo" );
         
-        NamingPolicy stubPolicy = mock( NamingPolicy.class );
-        when(stubPolicy.getName( isA(NamingPolicyRequest.class) )).thenReturn( new NamingPolicyResult().setName( "STUB" ) );
-        
         List<MavenProject> reactorProjects = Collections.singletonList( createProject( "artifactId", "1.0" ) );
         
-        Whitebox.setInternalState( phase, "namingPolicies", Collections.singletonMap( "stub", stubPolicy ) );
-        
         phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
         
         assertEquals( "STUB", releaseDescriptor.getScmReleaseLabel() );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java
index 93c09c7..6d16e39 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.java
@@ -194,9 +194,8 @@ public class GenerateReleasePomsPhaseTest
         ScmFileSet fileSet = new ScmFileSet( rootProject.getFile().getParentFile(), releasePoms );
 
         when( scmProviderMock.add( isA( ScmRepository.class ),
-                                   argThat( new IsScmFileSetEquals( fileSet ) ) ) ).thenReturn( new AddScmResult( "...",
-                                                                                                                  Collections.singletonList( new ScmFile( Maven.RELEASE_POMv4,
-                                                                                                                                                          ScmFileStatus.ADDED ) ) ) );
+               argThat( new IsScmFileSetEquals( fileSet ) ) ) ).thenReturn( new AddScmResult( "...",
+                              Collections.singletonList( new ScmFile( Maven.RELEASE_POMv4, ScmFileStatus.ADDED ) ) ) );
 
         ScmManagerStub stub = (ScmManagerStub) lookup( ScmManager.ROLE );
         stub.setScmProvider( scmProviderMock );
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmBranchPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmBranchPhaseTest.java
index d01f068..13abd9b 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmBranchPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmBranchPhaseTest.java
@@ -54,13 +54,11 @@ import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the SCM branch phase.
@@ -305,12 +303,8 @@ public class ScmBranchPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new NoSuchScmProviderException( "..." )  );
 
         // execute
         try
@@ -321,12 +315,9 @@ public class ScmBranchPhaseTest
         }
         catch ( ReleaseExecutionException e )
         {
+            // verify
             assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
@@ -337,11 +328,8 @@ public class ScmBranchPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new ScmRepositoryException( "..." ) );
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new ScmRepositoryException( "..." )  );
 
         // execute
         try
@@ -352,12 +340,10 @@ public class ScmBranchPhaseTest
         }
         catch ( ReleaseScmRepositoryException e )
         {
+            // verify
             assertNull( "Check no additional cause", e.getCause() );
         }
 
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.java
index e7b8ec3..257ca6f 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.java
@@ -23,7 +23,6 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
-import static org.mockito.Matchers.eq;
 import static org.mockito.Matchers.isA;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.times;
@@ -44,7 +43,6 @@ import org.apache.maven.scm.ScmFileStatus;
 import org.apache.maven.scm.command.status.StatusScmResult;
 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.ScmRepository;
@@ -55,11 +53,10 @@ import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.ReleaseResult;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the SCM modification check phase.
@@ -88,12 +85,8 @@ public class ScmCheckModificationsPhaseTest
         releaseDescriptor.setScmSourceUrl( "scm-url" );
         releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( eq( "scm-url" ) ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new NoSuchScmProviderException( "..." )  );
 
         // execute
         try
@@ -115,12 +108,9 @@ public class ScmCheckModificationsPhaseTest
         }
         catch ( ReleaseExecutionException e )
         {
+            // verify
             assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
         }
-
-        // verify
-        verify( scmManagerMock, times( 2 ) ).makeScmRepository( eq( "scm-url" ) );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
@@ -132,12 +122,8 @@ public class ScmCheckModificationsPhaseTest
         releaseDescriptor.setScmSourceUrl( "scm-url" );
         releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( eq( "scm-url" ) ) ).thenThrow( new ScmRepositoryException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new ScmRepositoryException( "..." )  );
 
         // execute
         try
@@ -161,10 +147,6 @@ public class ScmCheckModificationsPhaseTest
         {
             assertNull( "Check no additional cause", e.getCause() );
         }
-
-        // verify
-        verify( scmManagerMock, times( 2 ) ).makeScmRepository( eq( "scm-url" ) );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java
index 9cc7256..fb2ea9e 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.java
@@ -47,7 +47,6 @@ import org.apache.maven.scm.ScmVersion;
 import org.apache.maven.scm.command.checkin.CheckInScmResult;
 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.ScmRepository;
@@ -56,12 +55,11 @@ import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
+import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the release or branch preparation SCM commit phase.
@@ -307,13 +305,8 @@ public class ScmCommitPreparationPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
-
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new NoSuchScmProviderException( "..." )  );
         // execute
         try
         {
@@ -323,12 +316,9 @@ public class ScmCommitPreparationPhaseTest
         }
         catch ( ReleaseExecutionException e )
         {
+            // verify
             assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
@@ -339,12 +329,8 @@ public class ScmCommitPreparationPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new ScmRepositoryException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new ScmRepositoryException( "..." )  );
 
         // execute
         try
@@ -355,12 +341,9 @@ public class ScmCommitPreparationPhaseTest
         }
         catch ( ReleaseScmRepositoryException e )
         {
+            // verify
             assertNull( "Check no additional cause", e.getCause() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmTagPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmTagPhaseTest.java
index 7ce38a1..a80395f 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmTagPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/ScmTagPhaseTest.java
@@ -54,13 +54,11 @@ import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.ReleaseFailureException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
-import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
 import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.apache.maven.shared.release.util.ReleaseUtil;
 import org.junit.Test;
-import org.mockito.internal.util.reflection.Whitebox;
 
 /**
  * Test the SCM tag phase.
@@ -305,12 +303,8 @@ public class ScmTagPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new NoSuchScmProviderException( "..." )  );
 
         // execute
         try
@@ -321,12 +315,9 @@ public class ScmTagPhaseTest
         }
         catch ( ReleaseExecutionException e )
         {
+            // verify
             assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
@@ -337,12 +328,9 @@ public class ScmTagPhaseTest
         List<MavenProject> reactorProjects = createReactorProjects();
         ReleaseDescriptor releaseDescriptor = createReleaseDescriptor();
 
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new ScmRepositoryException( "..." ) );
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( phase, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
-
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new ScmRepositoryException( "..." )  );
+        
         // execute
         try
         {
@@ -352,12 +340,9 @@ public class ScmTagPhaseTest
         }
         catch ( ReleaseScmRepositoryException e )
         {
+            // verify
             assertNull( "Check no additional cause", e.getCause() );
         }
-
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/NamingPolicyStub.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/NamingPolicyStub.java
new file mode 100644
index 0000000..477bdb5
--- /dev/null
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/NamingPolicyStub.java
@@ -0,0 +1,40 @@
+package org.apache.maven.shared.release.stubs;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.shared.release.policy.PolicyException;
+import org.apache.maven.shared.release.policy.naming.NamingPolicy;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyRequest;
+import org.apache.maven.shared.release.policy.naming.NamingPolicyResult;
+
+/**
+ * A NamingPolicy stub, always return STUB as name
+ * @author Robert Scholte
+ *
+ */
+public class NamingPolicyStub implements NamingPolicy
+{
+    @Override
+    public NamingPolicyResult getName( NamingPolicyRequest request )
+        throws PolicyException
+    {
+        return new NamingPolicyResult().setName( "STUB" );
+    }
+}
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
index ec0ebec..45db43b 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
@@ -1,3 +1,5 @@
+package org.apache.maven.shared.release.stubs;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -17,8 +19,6 @@
  * under the License.
  */
 
-package org.apache.maven.shared.release.stubs;
-
 import java.util.HashMap;
 import java.util.Map;
 
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.xml
similarity index 82%
copy from maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml
copy to maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.xml
index d43a070..090aabb 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/BranchInputVariablesPhaseTest.xml
@@ -21,12 +21,12 @@
   <components>
     <component>
       <role>org.apache.maven.scm.manager.ScmManager</role>
-      <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
+      <implementation>org.apache.maven.shared.release.stubs.ScmManagerStub</implementation>
     </component>
     <component>
-      <role>org.apache.maven.shared.release.scm.ScmTranslator</role>
-      <role-hint>stub-provider</role-hint>
-      <implementation>org.apache.maven.shared.release.scm.SubversionScmTranslator</implementation>
+      <role>org.apache.maven.shared.release.policy.naming.NamingPolicy</role>
+      <role-hint>stub</role-hint>
+      <implementation>org.apache.maven.shared.release.stubs.NamingPolicyStub</implementation>
     </component>
     <!-- Turn off info messages -->
     <component>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml
index d43a070..cf932e5 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/GenerateReleasePomsPhaseTest.xml
@@ -21,7 +21,7 @@
   <components>
     <component>
       <role>org.apache.maven.scm.manager.ScmManager</role>
-      <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
+      <implementation>org.apache.maven.shared.release.stubs.ScmManagerStub</implementation>
     </component>
     <component>
       <role>org.apache.maven.shared.release.scm.ScmTranslator</role>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.xml
similarity index 87%
copy from maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml
copy to maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.xml
index 31abe17..343cd9b 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.xml
@@ -19,10 +19,6 @@
 
 <component-set>
   <components>
-    <component>
-      <role>org.apache.maven.scm.manager.ScmManager</role>
-      <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
-    </component>
     <!-- Turn off info messages -->
     <component>
       <role>org.codehaus.plexus.logging.LoggerManager</role>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml
index 31abe17..1c43704 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCheckModificationsPhaseTest.xml
@@ -21,7 +21,7 @@
   <components>
     <component>
       <role>org.apache.maven.scm.manager.ScmManager</role>
-      <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
+      <implementation>org.apache.maven.shared.release.stubs.ScmManagerStub</implementation>
     </component>
     <!-- Turn off info messages -->
     <component>
diff --git a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.xml b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.xml
index 31abe17..1c43704 100644
--- a/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.xml
+++ b/maven-release-manager/src/test/resources/org/apache/maven/shared/release/phase/ScmCommitPreparationPhaseTest.xml
@@ -21,7 +21,7 @@
   <components>
     <component>
       <role>org.apache.maven.scm.manager.ScmManager</role>
-      <implementation>org.apache.maven.scm.manager.ScmManagerStub</implementation>
+      <implementation>org.apache.maven.shared.release.stubs.ScmManagerStub</implementation>
     </component>
     <!-- Turn off info messages -->
     <component>

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.

[maven-release] 02/04: Move unittests to proper unit

Posted by rf...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

rfscholte pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git

commit 2fdfcc39b9088707b85d334be6b487584745e677
Author: rfscholte <rf...@apache.org>
AuthorDate: Sat Dec 23 21:24:36 2017 +0100

    Move unittests to proper unit
---
 .../shared/release/DefaultReleaseManagerTest.java  | 100 +++------------------
 .../release/phase/CheckoutProjectFromScmTest.java  |  64 +++++++++++++
 .../maven/shared/release/stubs/ScmManagerStub.java |  29 +++++-
 3 files changed, 104 insertions(+), 89 deletions(-)

diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
index f769f6c..511bd02 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/DefaultReleaseManagerTest.java
@@ -19,19 +19,31 @@ package org.apache.maven.shared.release;
  * under the License.
  */
 
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.ScmException;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTag;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
-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.ScmRepository;
-import org.apache.maven.scm.repository.ScmRepositoryException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.config.ReleaseDescriptorStore;
 import org.apache.maven.shared.release.config.ReleaseDescriptorStoreException;
@@ -40,19 +52,9 @@ import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
 import org.apache.maven.shared.release.env.ReleaseEnvironment;
 import org.apache.maven.shared.release.phase.ReleasePhase;
 import org.apache.maven.shared.release.phase.ReleasePhaseStub;
-import org.apache.maven.shared.release.scm.DefaultScmRepositoryConfigurator;
 import org.apache.maven.shared.release.scm.ReleaseScmCommandException;
-import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.codehaus.plexus.PlexusTestCase;
 import org.codehaus.plexus.util.FileUtils;
-import org.mockito.internal.util.reflection.Whitebox;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
-import static org.mockito.Mockito.*;
 
 /**
  * Test the default release manager.
@@ -520,80 +522,6 @@ public class DefaultReleaseManagerTest
         }
     }
 
-    public void testNoSuchScmProviderExceptionThrown()
-        throws Exception
-    {
-        // prepare
-        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
-        releaseDescriptor.setScmSourceUrl( "scm-url" );
-        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
-
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new NoSuchScmProviderException( "..." ) );
-
-        ReleasePhase rp = (ReleasePhase) lookup( ReleasePhase.ROLE, "checkout-project-from-scm");
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( rp, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );
-
-        DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
-        // execute
-        try
-        {
-            releaseDescriptor.setUseReleaseProfile( false );
-
-            releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), null );
-
-            fail( "commit should have failed" );
-        }
-        catch ( ReleaseExecutionException e )
-        {
-            assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
-        }
-        
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
-    }
-
-    public void testScmRepositoryExceptionThrown()
-        throws Exception
-    {
-        // prepare
-        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
-        releaseDescriptor.setScmSourceUrl( "scm-url" );
-        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
-
-        ScmManager scmManagerMock = mock( ScmManager.class );
-        when( scmManagerMock.makeScmRepository( "scm-url" ) ).thenThrow( new ScmRepositoryException( "..." ) );
-
-        ReleasePhase rp = (ReleasePhase) lookup( ReleasePhase.ROLE, "checkout-project-from-scm");
-        DefaultScmRepositoryConfigurator configurator =
-            (DefaultScmRepositoryConfigurator) Whitebox.getInternalState( rp, "scmRepositoryConfigurator" );
-        configurator.setScmManager( scmManagerMock );        
-
-        DefaultReleaseManager releaseManager = (DefaultReleaseManager) lookup( ReleaseManager.ROLE, "test" );
-
-        // execute
-        try
-        {
-            releaseDescriptor.setUseReleaseProfile( false );
-
-            releaseManager.perform( releaseDescriptor, new DefaultReleaseEnvironment(), null );
-
-            fail( "commit should have failed" );
-        }
-        catch ( ReleaseScmRepositoryException e )
-        {
-            assertNull( "Check no additional cause", e.getCause() );
-        }
-        
-        // verify
-        verify( scmManagerMock ).makeScmRepository( "scm-url" );
-        verifyNoMoreInteractions( scmManagerMock );
-    }
-
     public void testScmExceptionThrown()
         throws Exception
     {
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScmTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScmTest.java
index 0030e6d..cfed3f0 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScmTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckoutProjectFromScmTest.java
@@ -20,6 +20,8 @@ package org.apache.maven.shared.release.phase;
  */
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
 import static org.mockito.Matchers.argThat;
 import static org.mockito.Matchers.eq;
@@ -36,12 +38,16 @@ import org.apache.maven.scm.CommandParameters;
 import org.apache.maven.scm.ScmFileSet;
 import org.apache.maven.scm.ScmTag;
 import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.manager.NoSuchScmProviderException;
 import org.apache.maven.scm.manager.ScmManager;
 import org.apache.maven.scm.provider.ScmProvider;
 import org.apache.maven.scm.provider.svn.repository.SvnScmProviderRepository;
 import org.apache.maven.scm.repository.ScmRepository;
+import org.apache.maven.scm.repository.ScmRepositoryException;
+import org.apache.maven.shared.release.ReleaseExecutionException;
 import org.apache.maven.shared.release.config.ReleaseDescriptor;
 import org.apache.maven.shared.release.env.DefaultReleaseEnvironment;
+import org.apache.maven.shared.release.scm.ReleaseScmRepositoryException;
 import org.apache.maven.shared.release.stubs.ScmManagerStub;
 import org.junit.Test;
 
@@ -186,5 +192,63 @@ public class CheckoutProjectFromScmTest
                                             any( CommandParameters.class ));
         verifyNoMoreInteractions( scmProviderMock );
     }
+    
+    @Test
+    public void testNoSuchScmProviderExceptionThrown()
+                    throws Exception
+    {
+        // prepare
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
+        
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new NoSuchScmProviderException( "..." )  );
+
+        List<MavenProject> reactorProjects = createReactorProjects( "scm-commit", "/single-pom" );
+        
+        // execute
+        try
+        {
+            releaseDescriptor.setUseReleaseProfile( false );
+
+            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+
+            fail( "commit should have failed" );
+        }
+        catch ( ReleaseExecutionException e )
+        {
+            assertEquals( "check cause", NoSuchScmProviderException.class, e.getCause().getClass() );
+        }
+    }
+
+    @Test
+    public void testScmRepositoryExceptionThrown()
+        throws Exception
+    {
+        // prepare
+        ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+        releaseDescriptor.setScmSourceUrl( "scm-url" );
+        releaseDescriptor.setWorkingDirectory( getTestFile( "target/test/checkout" ).getAbsolutePath() );
+
+        ScmManagerStub scmManagerStub = (ScmManagerStub) lookup( ScmManager.ROLE );
+        scmManagerStub.setException( new ScmRepositoryException( "..." )  );
+
+        List<MavenProject> reactorProjects = createReactorProjects( "scm-commit", "/single-pom" );
+        
+        // execute
+        try
+        {
+            releaseDescriptor.setUseReleaseProfile( false );
+
+            phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(), reactorProjects );
+
+            fail( "commit should have failed" );
+        }
+        catch ( ReleaseScmRepositoryException e )
+        {
+            assertNull( "Check no additional cause", e.getCause() );
+        }
+    }
 
 }
\ No newline at end of file
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
index b16b404..ec0ebec 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/stubs/ScmManagerStub.java
@@ -32,19 +32,37 @@ import org.apache.maven.scm.repository.ScmRepositoryException;
 public class ScmManagerStub
     extends org.apache.maven.scm.manager.ScmManagerStub
 {
-    private Map<String, ScmRepository> scmRepositoriesForUrl = new HashMap<String, ScmRepository>();
+    private Exception e;
+    
+    private Map<String, ScmRepository> scmRepositoriesForUrl = new HashMap<>();
 
-    /*@Override*/
+    @Override
     public ScmRepository makeScmRepository( String scmUrl )
         throws ScmRepositoryException, NoSuchScmProviderException
     {
+        if ( e != null )
+        {
+            if ( e instanceof ScmRepositoryException )
+            {
+                throw (ScmRepositoryException) e;
+            }
+            else if ( e instanceof NoSuchScmProviderException )
+            {
+                throw (NoSuchScmProviderException) e;
+            }
+            else
+            {
+                throw new RuntimeException( e );
+            }
+        }
+        
         if ( scmRepositoriesForUrl.isEmpty() )
         {
             // we didn't configure any for URLs, return the preset one
             return getScmRepository();
         }
 
-        ScmRepository repository = (ScmRepository) scmRepositoriesForUrl.get( scmUrl );
+        ScmRepository repository = scmRepositoriesForUrl.get( scmUrl );
         if ( repository == null )
         {
             throw new ScmRepositoryException( "Unexpected URL: " + scmUrl );
@@ -56,4 +74,9 @@ public class ScmManagerStub
     {
         scmRepositoriesForUrl.put( url, repository );
     }
+    
+    public void setException( Exception e )
+    {
+        this.e = e;
+    }
 }

-- 
To stop receiving notification emails like this one, please contact
"commits@maven.apache.org" <co...@maven.apache.org>.