diff --git a/src/tests/junit/org/apache/tools/ant/PropertyExpansionTest.java b/src/tests/junit/org/apache/tools/ant/PropertyExpansionTest.java index 5b338bb5b..9fcee3317 100644 --- a/src/tests/junit/org/apache/tools/ant/PropertyExpansionTest.java +++ b/src/tests/junit/org/apache/tools/ant/PropertyExpansionTest.java @@ -23,16 +23,60 @@ import org.junit.Before; import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.util.Arrays; +import java.util.Collection; import static org.junit.Assert.assertEquals; /** * class to look at how we expand properties */ +@RunWith(Parameterized.class) public class PropertyExpansionTest { + @Parameterized.Parameters(name = "expand \"{0}\" => \"{1}\"") + public static Collection targets() { + return Arrays.asList(new Object [][] { + /* property expansion */ + {"", ""}, + {"$", "$"}, + {"$$-", "$-"}, + {"$$", "$"}, + {"a${expanded}b", "aEXPANDEDb"}, + {"${expanded}${expanded}", "EXPANDEDEXPANDED"}, + {"$$$", "$$"}, + {"$$$$-", "$$-"}, + {"", ""}, + {"Class$$subclass", "Class$subclass"}, + /* dollar passthrough */ + {"$-", "$-"}, + {"Class$subclass", "Class$subclass"}, + {"$$$-", "$$-"}, + {"$$$$$", "$$$"}, + {"${unassigned.property}", "${unassigned.property}"}, + {"a$b", "a$b"}, + {"$}}", "$}}"} + /* old things + {"Class$subclass", "Classsubclass"}, + {"$$$-", "$-"}, + {"a$b", "ab"}, + {"$}}", "}}"}, + */ + }); + } + + @Parameterized.Parameter + public String input; + + @Parameterized.Parameter(1) + public String expected; + @Rule public BuildFileRule buildRule = new BuildFileRule(); + /** * we bind to an existing test file because we are too lazy to write our * own, and we don't really care what it is @@ -40,58 +84,15 @@ public class PropertyExpansionTest { @Before public void setUp() { buildRule.configureProject("src/etc/testcases/core/immutable.xml"); - } - - /** - * run through the test cases of expansion - */ - @Test - public void testPropertyExpansion() { - assertExpandsTo("", ""); - assertExpandsTo("$", "$"); - assertExpandsTo("$$-", "$-"); - assertExpandsTo("$$", "$"); buildRule.getProject().setProperty("expanded", "EXPANDED"); - assertExpandsTo("a${expanded}b", "aEXPANDEDb"); - assertExpandsTo("${expanded}${expanded}", "EXPANDEDEXPANDED"); - assertExpandsTo("$$$", "$$"); - assertExpandsTo("$$$$-", "$$-"); - assertExpandsTo("", ""); - assertExpandsTo("Class$$subclass", "Class$subclass"); } /** - * new things we want + * the test itself */ @Test - public void testDollarPassthru() { - assertExpandsTo("$-", "$-"); - assertExpandsTo("Class$subclass", "Class$subclass"); - assertExpandsTo("$$$-", "$$-"); - assertExpandsTo("$$$$$", "$$$"); - assertExpandsTo("${unassigned.property}", "${unassigned.property}"); - assertExpandsTo("a$b", "a$b"); - assertExpandsTo("$}}", "$}}"); - } - - - /** - * old things we don't want; not a test anymore - */ - @Test - @Ignore("Previously disabled through naming convention") - public void oldtestQuirkyLegacyBehavior() { - assertExpandsTo("Class$subclass", "Classsubclass"); - assertExpandsTo("$$$-", "$-"); - assertExpandsTo("a$b", "ab"); - assertExpandsTo("$}}", "}}"); - } - - /** - * little helper method to validate stuff - */ - private void assertExpandsTo(String source, String expected) { - assertEquals(source, expected, buildRule.getProject().replaceProperties(source)); + public void test() { + assertEquals(input, expected, buildRule.getProject().replaceProperties(input)); } } diff --git a/src/tests/junit/org/apache/tools/ant/TopLevelTaskTest.java b/src/tests/junit/org/apache/tools/ant/TopLevelTaskTest.java index 7d73dc0e3..0a08d7006 100644 --- a/src/tests/junit/org/apache/tools/ant/TopLevelTaskTest.java +++ b/src/tests/junit/org/apache/tools/ant/TopLevelTaskTest.java @@ -23,6 +23,11 @@ package org.apache.tools.ant; import org.junit.Rule; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; + +import java.util.Arrays; +import java.util.Collection; import static org.junit.Assert.assertEquals; @@ -31,29 +36,31 @@ import static org.junit.Assert.assertEquals; * * @since Ant 1.6 */ +@RunWith(Parameterized.class) public class TopLevelTaskTest { - @Rule - public BuildFileRule buildRule = new BuildFileRule(); - - @Test - public void testNoTarget() { - buildRule.configureProject("src/etc/testcases/core/topleveltasks/notarget.xml"); - buildRule.executeTarget(""); - assertEquals("Called", buildRule.getLog()); + @Parameterized.Parameters(name = "{0}") + public static Collection targets() { + return Arrays.asList(new Object[][]{ + {"notarget", ""}, + {"toplevelant", ""}, + {"targetlevelant", "foo"} + }); } - @Test - public void testCalledFromTopLevelAnt() { - buildRule.configureProject("src/etc/testcases/core/topleveltasks/toplevelant.xml"); - buildRule.executeTarget(""); - assertEquals("Called", buildRule.getLog()); - } + @Parameterized.Parameter + public String fileName; + + @Parameterized.Parameter(1) + public String targetName; + + @Rule + public BuildFileRule buildRule = new BuildFileRule(); @Test - public void testCalledFromTargetLevelAnt() { - buildRule.configureProject("src/etc/testcases/core/topleveltasks/targetlevelant.xml"); - buildRule.executeTarget("foo"); + public void test() { + buildRule.configureProject("src/etc/testcases/core/topleveltasks/" + fileName + ".xml"); + buildRule.executeTarget(targetName); assertEquals("Called", buildRule.getLog()); } }