Merge "Clean up TestCaseUtil"
This commit is contained in:
@@ -40,16 +40,6 @@ public class TestCaseUtil {
|
||||
private TestCaseUtil() {
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static List<String> getTestCaseNames(Test test, boolean flatten) {
|
||||
List<Test> tests = (List<Test>) getTests(test, flatten);
|
||||
List<String> testCaseNames = new ArrayList<>();
|
||||
for (Test aTest : tests) {
|
||||
testCaseNames.add(getTestName(aTest));
|
||||
}
|
||||
return testCaseNames;
|
||||
}
|
||||
|
||||
public static List<? extends Test> getTests(Test test, boolean flatten) {
|
||||
return getTests(test, flatten, new HashSet<Class<?>>());
|
||||
}
|
||||
@@ -92,7 +82,7 @@ public class TestCaseUtil {
|
||||
return testCases;
|
||||
}
|
||||
|
||||
private static Test invokeSuiteMethodIfPossible(Class testClass,
|
||||
static Test invokeSuiteMethodIfPossible(Class testClass,
|
||||
Set<Class<?>> seen) {
|
||||
try {
|
||||
Method suiteMethod = testClass.getMethod(
|
||||
@@ -120,7 +110,7 @@ public class TestCaseUtil {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static String getTestName(Test test) {
|
||||
static String getTestName(Test test) {
|
||||
if (test instanceof TestCase) {
|
||||
TestCase testCase = (TestCase) test;
|
||||
return testCase.getName();
|
||||
@@ -138,34 +128,4 @@ public class TestCaseUtil {
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static Test getTestAtIndex(TestSuite testSuite, int position) {
|
||||
int index = 0;
|
||||
Enumeration enumeration = testSuite.tests();
|
||||
while (enumeration.hasMoreElements()) {
|
||||
Test test = (Test) enumeration.nextElement();
|
||||
if (index == position) {
|
||||
return test;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static TestSuite createTestSuite(Class<? extends Test> testClass)
|
||||
throws InstantiationException, IllegalAccessException {
|
||||
|
||||
Test test = invokeSuiteMethodIfPossible(testClass,
|
||||
new HashSet<Class<?>>());
|
||||
if (test == null) {
|
||||
return new TestSuite(testClass);
|
||||
|
||||
} else if (TestCase.class.isAssignableFrom(test.getClass())) {
|
||||
TestSuite testSuite = new TestSuite(test.getClass().getName());
|
||||
testSuite.addTest(test);
|
||||
return testSuite;
|
||||
}
|
||||
|
||||
return (TestSuite) test;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package android.test;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import junit.framework.Test;
|
||||
import junit.framework.TestCase;
|
||||
import junit.framework.TestSuite;
|
||||
@@ -24,38 +26,50 @@ import java.util.List;
|
||||
|
||||
public class TestCaseUtilTest extends TestCase {
|
||||
|
||||
public void testGetTestCaseNamesForTestSuiteWithSuiteMethod() throws Exception {
|
||||
@SuppressWarnings("unchecked")
|
||||
private static List<String> getTestCaseNames(Test test) {
|
||||
List<Test> tests = (List<Test>) TestCaseUtil.getTests(test, false);
|
||||
List<String> testCaseNames = new ArrayList<>();
|
||||
for (Test aTest : tests) {
|
||||
testCaseNames.add(TestCaseUtil.getTestName(aTest));
|
||||
}
|
||||
return testCaseNames;
|
||||
}
|
||||
|
||||
public void testGetTests_ForTestSuiteWithSuiteMethod() throws Exception {
|
||||
TestSuite testSuite = new TwoTestsInTestSuite();
|
||||
|
||||
List<String> testCaseNames = TestCaseUtil.getTestCaseNames(testSuite, false);
|
||||
List<String> testCaseNames = getTestCaseNames(testSuite);
|
||||
|
||||
assertEquals(0, testCaseNames.size());
|
||||
}
|
||||
|
||||
public void testGetTestCaseNamesForTestCaseWithSuiteMethod() throws Exception {
|
||||
public void testGetTests_ForTestCaseWithSuiteMethod() throws Exception {
|
||||
TestCase testCase = new OneTestTestCaseWithSuite();
|
||||
|
||||
List<String> testCaseNames = TestCaseUtil.getTestCaseNames(testCase, false);
|
||||
List<String> testCaseNames = getTestCaseNames(testCase);
|
||||
|
||||
assertEquals(1, testCaseNames.size());
|
||||
assertTrue(testCaseNames.get(0).endsWith("testOne"));
|
||||
}
|
||||
|
||||
public void testCreateTestForTestCase() throws Exception {
|
||||
Test test = TestCaseUtil.createTestSuite(OneTestTestCase.class);
|
||||
assertEquals(1, test.countTestCases());
|
||||
public void testInvokeSuiteMethodIfPossible_ForTestCase() throws Exception {
|
||||
Test test = TestCaseUtil.invokeSuiteMethodIfPossible(OneTestTestCase.class, new HashSet<>());
|
||||
assertNull(test);
|
||||
}
|
||||
|
||||
public void testCreateTestForTestSuiteWithSuiteMethod() throws Exception {
|
||||
Test test = TestCaseUtil.createTestSuite(TwoTestsInTestSuite.class);
|
||||
|
||||
public void testInvokeSuiteMethodIfPossible_ForTestSuiteWithSuiteMethod() throws Exception {
|
||||
Test test = TestCaseUtil.invokeSuiteMethodIfPossible(TwoTestsInTestSuite.class, new HashSet<>());
|
||||
assertNotNull(test);
|
||||
assertEquals(2, test.countTestCases());
|
||||
}
|
||||
|
||||
public void testCreateTestForTestCaseWithSuiteMethod() throws Exception {
|
||||
Test test = TestCaseUtil.createTestSuite(OneTestTestCaseWithSuite.class);
|
||||
public void testInvokeSuiteMethodIfPossible_ForTestCaseWithSuiteMethod() throws Exception {
|
||||
Test test = TestCaseUtil.invokeSuiteMethodIfPossible(OneTestTestCaseWithSuite.class, new HashSet<>());
|
||||
assertNotNull(test);
|
||||
assertEquals(1, test.countTestCases());
|
||||
}
|
||||
|
||||
|
||||
public void testReturnEmptyStringForTestSuiteWithNoName() throws Exception {
|
||||
assertEquals("", TestCaseUtil.getTestName(new TestSuite()));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user