blob: a5ad2fef808ac5bfe19dfe3f83d44204fcdd4cd8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
package org.apache.tools.ant.taskdefs.optional.junit;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.fail;
import org.junit.Test;
/**
*
* @author Marian Petras
*/
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
}
assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList(""));
assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList(" "));
assertArrayEquals(new String[0], JUnitTest.parseTestMethodNamesList(" "));
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,");
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 ,"));
/* 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("___"));
/* 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");
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 ,"));
}
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
}
}
}