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:06 UTC
[maven-release] 02/04: Move unittests to proper unit
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>.