Author: markh
Date: Mon Jan 28 08:31:25 2008
New Revision: 615935

URL: http://svn.apache.org/viewvc?rev=615935&view=rev
Log:
Improved jMock usage in tests to use onConsecutiveCalls as recommended by the 
documentation.

Modified:
    
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java

Modified: 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
URL: 
http://svn.apache.org/viewvc/maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java?rev=615935&r1=615934&r2=615935&view=diff
==============================================================================
--- 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
 (original)
+++ 
maven/release/trunk/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/CheckDependencySnapshotsPhaseTest.java
 Mon Jan 28 08:31:25 2008
@@ -25,13 +25,15 @@
 import org.codehaus.plexus.components.interactivity.Prompter;
 import org.codehaus.plexus.components.interactivity.PrompterException;
 import org.jmock.Mock;
+import org.jmock.core.Stub;
+import org.jmock.core.matcher.InvokeAtLeastOnceMatcher;
 import org.jmock.core.matcher.InvokeOnceMatcher;
 import org.jmock.core.stub.ReturnStub;
+import org.jmock.core.stub.StubSequence;
 import org.jmock.core.stub.ThrowStub;
 
 import java.util.List;
 import java.util.Map;
-import java.util.Stack;
 
 /**
  * Test the dependency snapshot check phase.
@@ -116,11 +118,7 @@
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"snapshot-release-plugin" );
 
-        Mock mockPrompter = new Mock( Prompter.class );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
+        Mock mockPrompter = createMockPrompter( "no", "no" );
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
@@ -134,11 +132,8 @@
             assertTrue( true );
         }
 
-        mockPrompter.reset();
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
+        mockPrompter = createMockPrompter( "no", "no" );
+        phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
         {
@@ -161,9 +156,7 @@
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"snapshot-release-plugin" );
 
-        Mock mockPrompter = new Mock( Prompter.class );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "yes" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
+        Mock mockPrompter = createYesMockPrompter();
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         phase.execute( releaseDescriptor, null, reactorProjects );
@@ -180,9 +173,7 @@
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"snapshot-release-plugin" );
 
-        Mock mockPrompter = new Mock( Prompter.class );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "yes" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
+        Mock mockPrompter = createYesMockPrompter();
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         phase.simulate( releaseDescriptor, null, reactorProjects );
@@ -199,11 +190,7 @@
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"snapshot-release-plugin" );
 
-        Mock mockPrompter = new Mock( Prompter.class );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "donkey" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
+        Mock mockPrompter = createMockPrompter( "donkey", "no" );
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
@@ -217,11 +204,8 @@
             assertTrue( true );
         }
 
-        mockPrompter.reset();
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "donkey" ) );
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will( new ReturnStub( "no" ) );
+        mockPrompter = createMockPrompter( "donkey", "no" );
+        phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
         {
@@ -286,8 +270,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"internal-differing-snapshot-dependencies" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -301,7 +285,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -458,20 +443,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-snapshot-dependencies" );
-        Mock mockPrompter;
-        Stack responseStack = new Stack();
-
-        responseStack.push( "yes" );
-        responseStack.push( "1" );
-        responseStack.push( "yes" );
-        responseStack.push( "1.1-SNAPSHOT" );
-        mockPrompter = createMockPrompter( "prompt", responseStack );
-
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
 
+        Mock mockPrompter = createMockPrompter( "yes", "1", "yes", 
"1.1-SNAPSHOT" );
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
@@ -492,17 +465,7 @@
 
         releaseDescriptor = new ReleaseDescriptor();
 
-        responseStack.push( "yes" );
-        responseStack.push( "1" );
-        responseStack.push( "yes" );
-        responseStack.push( "1.1-SNAPSHOT" );
-        mockPrompter = createMockPrompter( "prompt", responseStack );
-
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-
+        mockPrompter = createMockPrompter( "yes", "1", "yes", "1.1-SNAPSHOT" );
         phase.setPrompter( (Prompter) mockPrompter.proxy() );
 
         try
@@ -523,8 +486,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"internal-and-external-snapshot-dependencies" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -538,7 +501,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -588,8 +552,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-snapshot-report-plugins" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -603,7 +567,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -625,8 +590,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"internal-and-external-snapshot-report-plugins" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -640,7 +605,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -732,8 +698,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-managed-snapshot-plugin" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -747,7 +713,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -769,8 +736,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-snapshot-plugins" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -784,7 +751,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -806,8 +774,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"internal-and-external-snapshot-plugins" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -821,7 +789,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -843,8 +812,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-snapshot-parent/child" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -858,7 +827,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -894,8 +864,8 @@
 
         ReleaseDescriptor releaseDescriptor = new ReleaseDescriptor();
         List reactorProjects = createDescriptorFromProjects( 
"external-snapshot-extension" );
-        Mock noPrompter = createNoMockPrompter();
 
+        Mock noPrompter = createNoMockPrompter();
         phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
@@ -909,7 +879,8 @@
             assertTrue( true );
         }
 
-        resetNoMockPrompter( noPrompter );
+        noPrompter = createNoMockPrompter();
+        phase.setPrompter( (Prompter) noPrompter.proxy() );
 
         try
         {
@@ -1009,36 +980,46 @@
         return mockPrompter;
     }
 
-    private Mock resetNoMockPrompter( Mock mockPrompter )
+    private Mock createMockPrompter( String response1, String response2 )
     {
-        return resetYesNoMockPrompter( mockPrompter, false );
+        return createMockPrompter( new String[] { response1, response2 } );
     }
 
-    private Mock resetYesMockPrompter( Mock mockPrompter )
+    private Mock createMockPrompter( String response1, String response2, 
String response3, String response4 )
     {
-        return resetYesNoMockPrompter( mockPrompter, true );
+        return createMockPrompter( new String[] { response1, response2, 
response3, response4 } );
     }
 
-    private Mock resetYesNoMockPrompter( Mock mockPrompter, boolean yes )
+    private Mock createMockPrompter( String[] responses )
     {
-        mockPrompter.reset();
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "showMessage" 
);
-        mockPrompter.expects( new InvokeOnceMatcher() ).method( "prompt" 
).will(
-            new ReturnStub( ( yes ) ? "yes" : "no" ) );
+        Mock mockPrompter = new Mock( Prompter.class );
+
+        expectsShowMessages( mockPrompter );
+        expectsPrompts( mockPrompter, responses );
 
         return mockPrompter;
     }
 
-    private Mock createMockPrompter( String methodName, Stack responseStack )
+    private void expectsShowMessages( Mock mockPrompter )
     {
-        Mock mockPrompter = new Mock( Prompter.class );
+        mockPrompter.expects( new InvokeAtLeastOnceMatcher() ).method( 
"showMessage" );
+    }
+
+    private void expectsPrompts( Mock mockPrompter, String[] responses )
+    {
+        expects( mockPrompter, "prompt", responses );
+    }
 
-        while ( !responseStack.empty() )
+    private void expects( Mock mock, String methodName, String[] results )
+    {
+        Stub[] stubs = new Stub[results.length];
+
+        for ( int i = 0; i < results.length; i++ )
         {
-            mockPrompter.expects( new InvokeOnceMatcher() ).method( methodName 
).will(
-                new ReturnStub( responseStack.pop() ) );
+            stubs[i] = new ReturnStub( results[i] );
+
         }
 
-        return mockPrompter;
+        mock.expects( new InvokeAtLeastOnceMatcher() ).method( methodName 
).will( new StubSequence( stubs ) );
     }
 }


Reply via email to