merge applicable parameterized testing from the 20 branch

git-svn-id: https://svn.apache.org/repos/asf/myfaces/extensions/validator/trunk@1177082 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/test-modules/core-tests/src/test/java/org/apache/myfaces/extensions/validator/test/core/stage/CustomProjectStageTestCase.java b/test-modules/core-tests/src/test/java/org/apache/myfaces/extensions/validator/test/core/stage/CustomProjectStageTestCase.java
index 45c80f1..924a7b7 100644
--- a/test-modules/core-tests/src/test/java/org/apache/myfaces/extensions/validator/test/core/stage/CustomProjectStageTestCase.java
+++ b/test-modules/core-tests/src/test/java/org/apache/myfaces/extensions/validator/test/core/stage/CustomProjectStageTestCase.java
@@ -18,52 +18,82 @@
  */

 package org.apache.myfaces.extensions.validator.test.core.stage;

 

+import java.util.Arrays;

+import java.util.Collection;

+

 import org.apache.myfaces.extensions.validator.core.JsfProjectStage;

 import org.apache.myfaces.extensions.validator.core.ProjectStage;

 import org.apache.myfaces.extensions.validator.test.core.AbstractExValCoreTestCase;

 import org.junit.Assert;

+import org.junit.Assume;

 import org.junit.Test;

+import org.junit.runner.RunWith;

+import org.junit.runners.Parameterized;

+import org.junit.runners.Parameterized.Parameters;

 

+@RunWith(Parameterized.class)

 public class CustomProjectStageTestCase extends AbstractExValCoreTestCase

 {

     private static final String PROJECT_STAGE = "javax.faces.PROJECT_STAGE";

-    

-    @Test

-    public void testDevelopmentStage()

+

+    private final String paramValue;

+    private final CustomProjectStage stage;

+

+    public CustomProjectStageTestCase(String paramValue, CustomProjectStage stage)

     {

-        servletContext.addInitParameter(PROJECT_STAGE, "Dev");

-        Assert.assertTrue(CustomProjectStage.is(CustomProjectStage.Dev));

+        this.paramValue = paramValue;

+        this.stage = stage;

+    }

+

+    @Override

+    protected void addInitializationParameters()

+    {

+        super.addInitializationParameters();

+        if(paramValue != null)

+        {

+            addInitParameter(PROJECT_STAGE, paramValue);

+        }

     }

 

     @Test

-    public void testTestStage()

+    public void testStage()

     {

-        servletContext.addInitParameter(PROJECT_STAGE, "Test");

-        Assert.assertTrue(CustomProjectStage.is(CustomProjectStage.Test));

+        Assume.assumeNotNull(paramValue);

+        Assume.assumeNotNull(stage);

+        Assert.assertTrue(CustomProjectStage.is(stage));

     }

 

-    @Test

-    public void testProductionStage()

+    @Parameters

+    public static Collection<Object[]> data()

     {

-        servletContext.addInitParameter(PROJECT_STAGE, "Prod");

-        Assert.assertTrue(CustomProjectStage.is(CustomProjectStage.Prod));

+        // @formatter:off

+        return Arrays.asList(new Object[][] {

+            new Object[] { null, null },

+            new Object[] { "Dev", CustomProjectStage.Dev },

+            new Object[] { "Test", CustomProjectStage.Test },

+            new Object[] { "Prod", CustomProjectStage.Prod }

+        });

+        // @formatter:on

     }

 

     @Test

     public void testDefaultStage()

     {

+        Assume.assumeTrue(stage == null);

         Assert.assertTrue(ProjectStage.is(JsfProjectStage.Production.getValue()));

     }

 

     @Test

     public void testWrongDefaultStage1()

     {

+        Assume.assumeTrue(stage == null);

         Assert.assertFalse(CustomProjectStage.is(CustomProjectStage.Dev));

     }

 

     @Test

     public void testWrongDefaultStage2()

     {

+        Assume.assumeTrue(stage == null);

         Assert.assertFalse(CustomProjectStage.is(CustomProjectStage.Test));

     }

 }
\ No newline at end of file