| @@ -19,102 +19,97 @@ | |||||
| package org.apache.tools.ant.taskdefs.optional.junit; | package org.apache.tools.ant.taskdefs.optional.junit; | ||||
| import static org.junit.Assert.assertArrayEquals; | import static org.junit.Assert.assertArrayEquals; | ||||
| import static org.junit.Assert.fail; | |||||
| import org.junit.Test; | import org.junit.Test; | ||||
| import org.junit.experimental.runners.Enclosed; | |||||
| import org.junit.runner.RunWith; | |||||
| import org.junit.runners.Parameterized; | |||||
| import org.junit.runners.Parameterized.Parameter; | |||||
| import org.junit.runners.Parameterized.Parameters; | |||||
| import java.util.Arrays; | |||||
| import java.util.Collection; | |||||
| /** | /** | ||||
| * | * | ||||
| * @author Marian Petras | * @author Marian Petras | ||||
| */ | */ | ||||
| @RunWith(Enclosed.class) | |||||
| public class BatchTestTest { | public class BatchTestTest { | ||||
| @Test | |||||
| public void testParseTestMethodNamesList() { | |||||
| try { | |||||
| JUnitTest.parseTestMethodNamesList(null); | |||||
| fail("IllegalArgumentException expected when the param is <null>"); | |||||
| } catch (IllegalArgumentException ex) { | |||||
| //this is an expected exception | |||||
| @RunWith(Parameterized.class) | |||||
| public static class IllegalArgumentTest { | |||||
| // requires JUnit 4.12 | |||||
| @Parameters(name = "illegal argument: |{0}|") | |||||
| public static Collection<String> data() { | |||||
| return Arrays.asList(null, ",", " ,", ", ", " , ", | |||||
| ",a", " ,a", " ,a", " , a", " ,a ", " ,a ,", | |||||
| "ab,,cd", "ab, ,cd", "ab, ,cd", "ab, ,cd,", ",ab, ,cd,", | |||||
| /* illegal Java identifiers: */ | |||||
| "1", "1a", "1ab", "1abc", "1abc d", "1abc de", "1abc def", "1abc def,", | |||||
| ",1abc def"); | |||||
| } | } | ||||
| assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList("")); | |||||
| assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList(" ")); | |||||
| assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList(" ")); | |||||
| @Parameter | |||||
| public String argument; | |||||
| checkParseCausesIAE(","); | |||||
| checkParseCausesIAE(" ,"); | |||||
| checkParseCausesIAE(", "); | |||||
| checkParseCausesIAE(" , "); | |||||
| checkParseCausesIAE(",a"); | |||||
| checkParseCausesIAE(" ,a"); | |||||
| checkParseCausesIAE(" ,a"); | |||||
| checkParseCausesIAE(" , a"); | |||||
| checkParseCausesIAE(" ,a "); | |||||
| checkParseCausesIAE(" ,a ,"); | |||||
| checkParseCausesIAE("ab,,cd"); | |||||
| checkParseCausesIAE("ab, ,cd"); | |||||
| checkParseCausesIAE("ab, ,cd"); | |||||
| checkParseCausesIAE("ab, ,cd,"); | |||||
| checkParseCausesIAE(",ab, ,cd,"); | |||||
| /** | |||||
| * Expected failure when the parameter is illegal | |||||
| */ | |||||
| @Test(expected = IllegalArgumentException.class) | |||||
| public void testParseTestMethodNamesList() { | |||||
| JUnitTest.parseTestMethodNamesList(argument); | |||||
| } | |||||
| } | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc ")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList(" abc")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList(" abc ")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc ")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc,")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc, ")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc ,")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList("abc , ")); | |||||
| assertArrayEquals(new String[] {"abc"}, JUnitTest.parseTestMethodNamesList(" abc ,")); | |||||
| @RunWith(Parameterized.class) | |||||
| public static class LegalArgumentTest { | |||||
| /* legal Java identifiers: */ | |||||
| assertArrayEquals(new String[] {"a"}, JUnitTest.parseTestMethodNamesList("a")); | |||||
| assertArrayEquals(new String[] {"a1"}, JUnitTest.parseTestMethodNamesList("a1")); | |||||
| assertArrayEquals(new String[] {"a$"}, JUnitTest.parseTestMethodNamesList("a$")); | |||||
| assertArrayEquals(new String[] {"a$1"}, JUnitTest.parseTestMethodNamesList("a$1")); | |||||
| assertArrayEquals(new String[] {"_bc"}, JUnitTest.parseTestMethodNamesList("_bc")); | |||||
| assertArrayEquals(new String[] {"___"}, JUnitTest.parseTestMethodNamesList("___")); | |||||
| @Parameters(name = "legal argument: |{0}|") | |||||
| public static Collection<Object[]> data() { | |||||
| return Arrays.asList(new Object[][] { | |||||
| {"", new String[0]}, {" ", new String[0]}, {" ", new String[0]}, | |||||
| {"abc", new String[]{"abc"}}, {"abc ", new String[]{"abc"}}, | |||||
| {" abc", new String[]{"abc"}}, {" abc ", new String[]{"abc"}}, | |||||
| {"abc ", new String[]{"abc"}}, {"abc,", new String[]{"abc"}}, | |||||
| {"abc, ", new String[]{"abc"}}, {"abc ,", new String[]{"abc"}}, | |||||
| {"abc , ", new String[]{"abc"}}, {" abc ,", new String[]{"abc"}}, | |||||
| /* legal Java identifiers: */ | |||||
| {"a", new String[]{"a"}}, {"a1", new String[]{"a1"}}, | |||||
| {"a$", new String[]{"a$"}}, {"a$1", new String[]{"a$1"}}, | |||||
| {"_bc", new String[]{"_bc"}}, {"___", new String[]{"___"}}, | |||||
| {"abc,def", new String[]{"abc", "def"}}, | |||||
| {"abc,def,", new String[]{"abc", "def"}}, | |||||
| {"abc,def ", new String[]{"abc", "def"}}, | |||||
| {"abc, def", new String[]{"abc", "def"}}, | |||||
| {"abc, def ", new String[]{"abc", "def"}}, | |||||
| {"abc ,def", new String[]{"abc", "def"}}, | |||||
| {"abc ,def ", new String[]{"abc", "def"}}, | |||||
| {"abc , def", new String[]{"abc", "def"}}, | |||||
| {"abc , def ", new String[]{"abc", "def"}}, | |||||
| {" abc,def", new String[]{"abc", "def"}}, | |||||
| {" abc,def ", new String[]{"abc", "def"}}, | |||||
| {" abc, def", new String[]{"abc", "def"}}, | |||||
| {" abc, def ", new String[]{"abc", "def"}}, | |||||
| {" abc ,def", new String[]{"abc", "def"}}, | |||||
| {" abc ,def ", new String[]{"abc", "def"}}, | |||||
| {" abc , def", new String[]{"abc", "def"}}, | |||||
| {" abc , def ", new String[]{"abc", "def"}}, | |||||
| {" abc , def ,", new String[]{"abc", "def"}}, | |||||
| }); | |||||
| } | |||||
| /* illegal Java identifiers: */ | |||||
| checkParseCausesIAE("1"); | |||||
| checkParseCausesIAE("1a"); | |||||
| checkParseCausesIAE("1ab"); | |||||
| checkParseCausesIAE("1abc"); | |||||
| checkParseCausesIAE("1abc d"); | |||||
| checkParseCausesIAE("1abc de"); | |||||
| checkParseCausesIAE("1abc def"); | |||||
| checkParseCausesIAE("1abc def,"); | |||||
| checkParseCausesIAE(",1abc def"); | |||||
| @Parameter | |||||
| public String argument; | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc,def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc,def,")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc,def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc, def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc, def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc ,def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc ,def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc , def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList("abc , def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc,def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc,def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc, def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc, def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc ,def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc ,def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc , def")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc , def ")); | |||||
| assertArrayEquals(new String[] {"abc", "def"}, JUnitTest.parseTestMethodNamesList(" abc , def ,")); | |||||
| } | |||||
| @Parameter(1) | |||||
| public String[] result; | |||||
| private static void checkParseCausesIAE(String param) { | |||||
| try { | |||||
| JUnitTest.parseTestMethodNamesList(param); | |||||
| fail("IllegalArgumentException expected when the param is \"" + param + '"'); | |||||
| } catch (IllegalArgumentException ex) { | |||||
| //this is an expected exception | |||||
| } | |||||
| @Test | |||||
| public void testParseTestMethodNamesList() { | |||||
| assertArrayEquals(result, JUnitTest.parseTestMethodNamesList(argument)); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||