Skip to content

Commit

Permalink
Fix angelozerr#106: Check for JUnit3 base class.
Browse files Browse the repository at this point in the history
  • Loading branch information
gayanper committed Aug 16, 2020
1 parent 1baa02c commit 8bc2296
Showing 1 changed file with 17 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -1,14 +1,30 @@
package org.eclipse.jdt.experimental.junit.codemining.tester;

import java.util.stream.Stream;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.experimental.JavaCodeMiningPlugin;

public class JUnit3MethodTester implements IJUnitMethodTester {

public static final IJUnitMethodTester INSTANCE = new JUnit3MethodTester();

@Override
public boolean isTestMethod(IMethod method) {
return IJUnitMethodTester.isMethod(method, true) && method.getElementName().startsWith("test");
return IJUnitMethodTester.isMethod(method, true) && isTestClass(method.getDeclaringType())
&& method.getElementName().startsWith("test");
}

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

0 comments on commit 8bc2296

Please sign in to comment.