Author: rfscholte
Date: Wed Feb 22 21:23:53 2012
New Revision: 1292514
URL: http://svn.apache.org/viewvc?rev=1292514&view=rev
Log:
MRELEASE-741: migrate to mockito
Modified:
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
Modified:
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
URL:
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java?rev=1292514&r1=1292513&r2=1292514&view=diff
==============================================================================
---
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
(original)
+++
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/MapVersionsPhaseTest.java
Wed Feb 22 21:23:53 2012
@@ -19,6 +19,14 @@ package org.apache.maven.shared.release.
* under the License.
*/
+import static org.mockito.Matchers.eq;
+import static org.mockito.Matchers.isA;
+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.util.Collections;
import java.util.List;
@@ -31,13 +39,6 @@ import org.apache.maven.shared.release.v
import org.codehaus.plexus.PlexusTestCase;
import org.codehaus.plexus.components.interactivity.Prompter;
import org.codehaus.plexus.components.interactivity.PrompterException;
-import org.jmock.Mock;
-import org.jmock.core.constraint.IsAnything;
-import org.jmock.core.constraint.IsEqual;
-import org.jmock.core.matcher.InvokeOnceMatcher;
-import org.jmock.core.matcher.TestFailureMatcher;
-import org.jmock.core.stub.ReturnStub;
-import org.jmock.core.stub.ThrowStub;
/**
* Test the version mapping phase.
@@ -50,34 +51,35 @@ public class MapVersionsPhaseTest
public void testMapReleaseVersionsInteractive()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-release-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.0" ) ).will(
- new ReturnStub( "2.0" ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( isA( String.class ), eq( "1.0" ) )
).thenReturn( "2.0" );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0-SNAPSHOT" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.0" ) ).will(
- new ReturnStub( "2.0" ) );
-
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
+ verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ), eq(
"1.0" ) );
+ verifyNoMoreInteractions( mockPrompter );
}
/**
@@ -87,34 +89,36 @@ public class MapVersionsPhaseTest
public void testMapReleaseVersionsInteractiveWithSnaphotVersion()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-release-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.0" ) ).will(
- new ReturnStub( "2.0" ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( isA( String.class ), eq( "1.0" ) )
).thenReturn( "2.0" );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "SNAPSHOT" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.0" ) ).will(
- new ReturnStub( "2.0" ) );
-
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
+
+ verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ), eq(
"1.0" ) );
+ verifyNoMoreInteractions( mockPrompter );
}
/**
@@ -123,129 +127,143 @@ public class MapVersionsPhaseTest
public void testMapReleaseVersionsNonInteractiveWithExplicitVersion()
throws Exception
{
+ // prepare
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "SNAPSHOT" ) );
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-release-versions" );
- // execute
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.addReleaseVersion( "groupId:artifactId", "2.0" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ phase.setPrompter( mockPrompter );
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
- // simulate
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.addReleaseVersion( "groupId:artifactId", "2.0" );
- mockPrompter.reset();
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
-
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0" ),
releaseDescriptor.getReleaseVersions() );
+
+ // never invoke mockprompter
+ verifyNoMoreInteractions( mockPrompter );
}
public void testMapReleaseVersionsNonInteractive()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-release-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0-SNAPSHOT" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "1.0" ),
releaseDescriptor.getReleaseVersions() );
-
- mockPrompter.reset();
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
-
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "1.0" ),
releaseDescriptor.getReleaseVersions() );
+
+ // never invoke mockprompter
+ verifyNoMoreInteractions( mockPrompter );
}
public void testMapDevVersionsInteractive()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-development-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.1-SNAPSHOT" ) ).will(
- new ReturnStub( "2.0-SNAPSHOT" ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( isA( String.class ), eq( "1.1-SNAPSHOT" ) )
).thenReturn( "2.0-SNAPSHOT" );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.1-SNAPSHOT" ) ).will(
- new ReturnStub( "2.0-SNAPSHOT" ) );
-
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
+
+ verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ), eq(
"1.1-SNAPSHOT" ) );
+ verifyNoMoreInteractions( mockPrompter );
}
public void testMapDevVersionsNonInteractive()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-development-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "1.1-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
- mockPrompter.reset();
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
-
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "1.1-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
+
+ // never invoke mockprompter
+ verifyNoMoreInteractions( mockPrompter );
}
/**
@@ -254,51 +272,55 @@ public class MapVersionsPhaseTest
public void testMapDevVersionsNonInteractiveWithExplicitVersion()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-development-versions" );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0" ) );
- // execute
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ phase.setPrompter( mockPrompter );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
releaseDescriptor.addDevelopmentVersion( "groupId:artifactId",
"2-SNAPSHOT" );
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
- // simulate
- mockPrompter.reset();
- mockPrompter.expects( new TestFailureMatcher( "prompter should not be
called" ) ).method( "prompt" );
-
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
releaseDescriptor.setInteractive( false );
releaseDescriptor.addDevelopmentVersion( "groupId:artifactId",
"2-SNAPSHOT" );
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
+
+ // never invoke mockprompter
+ verifyNoMoreInteractions( mockPrompter );
}
public void testPrompterException()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-development-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).will(
- new ThrowStub( new PrompterException( "..." ) ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( isA( String.class ), isA( String.class ) )
).thenThrow( new PrompterException( "..." ) );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "1.0" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ // execute
try
{
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
@@ -310,12 +332,10 @@ public class MapVersionsPhaseTest
assertEquals( "check cause", PrompterException.class,
e.getCause().getClass() );
}
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).will(
- new ThrowStub( new PrompterException( "..." ) ) );
-
+ // execute
try
{
phase.simulate( releaseDescriptor, new
DefaultReleaseEnvironment(), reactorProjects );
@@ -326,39 +346,44 @@ public class MapVersionsPhaseTest
{
assertEquals( "check cause", PrompterException.class,
e.getCause().getClass() );
}
+
+ //verify
+ verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ), isA(
String.class ) );
+ verifyNoMoreInteractions( mockPrompter );
}
public void testAdjustVersionInteractive()
throws Exception
{
+ // prepare
MapVersionsPhase phase = (MapVersionsPhase) lookup( ReleasePhase.ROLE,
"test-map-development-versions" );
- Mock mockPrompter = new Mock( Prompter.class );
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.1-SNAPSHOT" ) ).will(
- new ReturnStub( "2.0-SNAPSHOT" ) );
- phase.setPrompter( (Prompter) mockPrompter.proxy() );
+ Prompter mockPrompter = mock( Prompter.class );
+ when( mockPrompter.prompt( isA( String.class ), eq( "1.1-SNAPSHOT" ) )
).thenReturn( "2.0-SNAPSHOT" );
+ phase.setPrompter( mockPrompter );
List<MavenProject> reactorProjects = Collections.singletonList(
createProject( "artifactId", "foo" ) );
ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
+ // execute
phase.execute( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
- mockPrompter.reset();
- mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt"
).with( new IsAnything(),
-
new IsEqual( "1.1-SNAPSHOT" ) ).will(
- new ReturnStub( "2.0-SNAPSHOT" ) );
-
+ // prepare
releaseDescriptor = new ReleaseDescriptor();
+ // execute
phase.simulate( releaseDescriptor, new DefaultReleaseEnvironment(),
reactorProjects );
+ // verify
assertEquals( "Check mapped versions", Collections.singletonMap(
"groupId:artifactId", "2.0-SNAPSHOT" ),
releaseDescriptor.getDevelopmentVersions() );
+ verify( mockPrompter, times( 2 ) ).prompt( isA( String.class ), eq(
"1.1-SNAPSHOT" ) );
+ verifyNoMoreInteractions( mockPrompter );
}
public void testAdjustVersionNonInteractive()