Skip to content

Commit 86b76fe

Browse files
committed
Fix #106: Check for JUnit3 base class.
1 parent 1baa02c commit 86b76fe

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,30 @@
11
package org.eclipse.jdt.experimental.junit.codemining.tester;
22

3+
import java.util.stream.Stream;
4+
5+
import org.eclipse.core.runtime.NullProgressMonitor;
36
import org.eclipse.jdt.core.IMethod;
7+
import org.eclipse.jdt.core.IType;
8+
import org.eclipse.jdt.core.JavaModelException;
9+
import org.eclipse.jdt.experimental.JavaCodeMiningPlugin;
410

511
public class JUnit3MethodTester implements IJUnitMethodTester {
612

713
public static final IJUnitMethodTester INSTANCE = new JUnit3MethodTester();
814

915
@Override
1016
public boolean isTestMethod(IMethod method) {
11-
return IJUnitMethodTester.isMethod(method, true) && method.getElementName().startsWith("test");
17+
return IJUnitMethodTester.isMethod(method, true) && isTestClass(method.getDeclaringType())
18+
&& method.getElementName().startsWith("test");
1219
}
1320

21+
private boolean isTestClass(IType type) {
22+
try {
23+
return Stream.of(type.newSupertypeHierarchy(new NullProgressMonitor()).getAllSupertypes(type))
24+
.filter(t -> "junit.framework.TestCase".equals(t.getFullyQualifiedName())).findFirst().isPresent();
25+
} catch (JavaModelException e) {
26+
JavaCodeMiningPlugin.getDefault().getLog().error("isTestClass check for JUnit3 failed.", e);
27+
return false;
28+
}
29+
}
1430
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<repository>
3030
<id>photon</id>
3131
<layout>p2</layout>
32-
<url>http://download.eclipse.org/releases/photon/</url>
32+
<url>http://download.eclipse.org/releases/2020-06/</url>
3333
</repository>
3434
<repository>
3535
<id>egit</id>

0 commit comments

Comments
 (0)