Make AbstractRewritingReleasePhaseTestCase an parameterized test, so we can simply add and verify new modelETLs

git-svn-id: https://svn.apache.org/repos/asf/maven/release/trunk@1744885 13f79535-47bb-0310-9956-ffa450edef68
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 c700145..cb544b6 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
@@ -56,6 +56,11 @@
 public abstract class AbstractEditModeRewritingReleasePhaseTestCase
     extends AbstractRewritingReleasePhaseTestCase
 {
+    public AbstractEditModeRewritingReleasePhaseTestCase( String modelETL )
+    {
+        super( modelETL );
+    }
+
     @Test
     public void testRewriteBasicPomWithEditMode()
         throws Exception
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 0771e1a..0b7db6d 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
@@ -30,6 +30,8 @@
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 
@@ -46,8 +48,12 @@
 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.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;
 
 /**
@@ -55,9 +61,38 @@
  *
  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
  */
+@RunWith(Parameterized.class)
 public abstract class AbstractRewritingReleasePhaseTestCase
     extends AbstractReleaseTestCase
 {
+    private String modelETL;
+
+    @Parameters
+    public static Collection<Object[]> data()
+    {
+        return Arrays.asList( new Object[][] { { JDomModelETLFactory.ROLE_HINT } } );
+    }
+    
+    public AbstractRewritingReleasePhaseTestCase( String modelETL )
+    {
+        this.modelETL = modelETL;
+    }
+    
+    @Override
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, getRoleHint() );
+
+        if( phase instanceof AbstractRewritePomsPhase)
+        {
+            ((AbstractRewritePomsPhase) phase).setModelETL( modelETL );
+        }
+    }
+    
+    protected abstract String getRoleHint();
+    
     @Test
     public void testRewriteBasicPom()
         throws Exception
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 a60e4e5..e5f17cb 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
@@ -64,14 +64,24 @@
 
     private ScmProvider scmProviderMock;
 
+    public GenerateReleasePomsPhaseTest( String modelETL )
+    {
+        super( modelETL );
+    }
+
     public void setUp()
         throws Exception
     {
         super.setUp();
 
-        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "generate-release-poms" );
         scmProviderMock = null;
     }
+    
+    @Override
+    protected String getRoleHint()
+    {
+        return "generate-release-poms";
+    }
 
     // TODO: MRELEASE-262
     // @Test public void testRewriteInternalRangeDependency() throws Exception
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
index 70dc9c8..79bf8a2 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForBranchPhaseTest.java
@@ -46,12 +46,15 @@
 
     private static final String ALTERNATIVE_NEXT_VERSION = "2.0-SNAPSHOT";
 
-    public void setUp()
-        throws Exception
+    public RewritePomsForBranchPhaseTest( String modelETL )
     {
-        super.setUp();
+        super( modelETL );
+    }
 
-        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "rewrite-poms-for-branch" );
+    @Override
+    protected String getRoleHint()
+    {
+        return "rewrite-poms-for-branch";
     }
 
     protected List<MavenProject> prepareReactorProjects( String path, boolean copyFiles )
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
index 90cf5f2..1cc60f4 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForDevelopmentPhaseTest.java
@@ -55,12 +55,15 @@
 
     private static final String ALTERNATIVE_RELEASE_VERSION = "2.0";
 
-    public void setUp()
-        throws Exception
+    public RewritePomsForDevelopmentPhaseTest( String modelETL )
     {
-        super.setUp();
+        super( modelETL );
+    }
 
-        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "rewrite-poms-for-development" );
+    @Override
+    protected String getRoleHint()
+    {
+        return "rewrite-poms-for-development";
     }
 
     @Test
diff --git a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
index 6747516..f3d7587 100644
--- a/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
+++ b/maven-release-manager/src/test/java/org/apache/maven/shared/release/phase/RewritePomsForReleasePhaseTest.java
@@ -46,12 +46,15 @@
 
     private static final String ALTERNATIVE_NEXT_VERSION = "2.0";
 
-    public void setUp()
-        throws Exception
+    public RewritePomsForReleasePhaseTest( String modelETL )
     {
-        super.setUp();
+        super( modelETL );
+    }
 
-        phase = (ReleasePhase) lookup( ReleasePhase.ROLE, "rewrite-poms-for-release" );
+    @Override
+    protected String getRoleHint()
+    {
+        return "rewrite-poms-for-release";
     }
 
     protected List<MavenProject> prepareReactorProjects( String path, boolean copyFiles )