mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit 5 for assertion without message, constant assertion inspection
This commit is contained in:
+14
-7
@@ -50,13 +50,8 @@ public class AssertEqualsHint {
|
||||
return null;
|
||||
}
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
final boolean messageOnLastPosition = InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.ORG_JUNIT_JUPITER_API_ASSERTIONS) ||
|
||||
InheritanceUtil.isInheritor(containingClass, "org.testng.Assert");
|
||||
if (!InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.JUNIT_FRAMEWORK_ASSERT) &&
|
||||
!InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.ORG_JUNIT_ASSERT) &&
|
||||
!InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.JUNIT_FRAMEWORK_TEST_CASE) &&
|
||||
!InheritanceUtil.isInheritor(containingClass, "org.testng.AssertJUnit") &&
|
||||
!messageOnLastPosition) {
|
||||
final boolean messageOnLastPosition = isMessageOnLastPosition(containingClass);
|
||||
if (!isMessageOnFirstPosition(containingClass) && !messageOnLastPosition) {
|
||||
return null;
|
||||
}
|
||||
final PsiParameterList parameterList = method.getParameterList();
|
||||
@@ -83,6 +78,18 @@ public class AssertEqualsHint {
|
||||
return new AssertEqualsHint(argumentIndex, method);
|
||||
}
|
||||
|
||||
public static boolean isMessageOnFirstPosition(PsiClass containingClass) {
|
||||
return InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.JUNIT_FRAMEWORK_ASSERT) ||
|
||||
InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.ORG_JUNIT_ASSERT) ||
|
||||
InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.JUNIT_FRAMEWORK_TEST_CASE) ||
|
||||
InheritanceUtil.isInheritor(containingClass, "org.testng.AssertJUnit");
|
||||
}
|
||||
|
||||
public static boolean isMessageOnLastPosition(PsiClass containingClass) {
|
||||
return InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.ORG_JUNIT_JUPITER_API_ASSERTIONS) ||
|
||||
InheritanceUtil.isInheritor(containingClass, "org.testng.Assert");
|
||||
}
|
||||
|
||||
public static String areExpectedActualTypesCompatible(PsiMethodCallExpression expression) {
|
||||
final AssertEqualsHint assertEqualsHint = create(expression);
|
||||
if (assertEqualsHint == null) return null;
|
||||
|
||||
+5
-4
@@ -82,8 +82,9 @@ public class AssertsWithoutMessagesInspection extends BaseInspection {
|
||||
return;
|
||||
}
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
if (!InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.JUNIT_FRAMEWORK_ASSERT) &&
|
||||
!InheritanceUtil.isInheritor(containingClass, JUnitCommonClassNames.ORG_JUNIT_ASSERT)) {
|
||||
final boolean messageOnFirstPosition = AssertEqualsHint.isMessageOnFirstPosition(containingClass);
|
||||
final boolean messageOnLastPosition = AssertEqualsHint.isMessageOnLastPosition(containingClass);
|
||||
if (!messageOnFirstPosition && !messageOnLastPosition) {
|
||||
return;
|
||||
}
|
||||
final PsiParameterList parameterList = method.getParameterList();
|
||||
@@ -98,7 +99,7 @@ public class AssertsWithoutMessagesInspection extends BaseInspection {
|
||||
}
|
||||
final PsiType stringType = TypeUtils.getStringType(expression);
|
||||
final PsiParameter[] parameters = parameterList.getParameters();
|
||||
final PsiType parameterType1 = parameters[0].getType();
|
||||
final PsiType parameterType1 = parameters[messageOnFirstPosition ? 0 : parameters.length - 1].getType();
|
||||
if (!parameterType1.equals(stringType)) {
|
||||
registerMethodCallError(expression);
|
||||
return;
|
||||
@@ -106,7 +107,7 @@ public class AssertsWithoutMessagesInspection extends BaseInspection {
|
||||
if (parameters.length != 2) {
|
||||
return;
|
||||
}
|
||||
final PsiType parameterType2 = parameters[1].getType();
|
||||
final PsiType parameterType2 = parameters[messageOnFirstPosition ? parameterCount - 1 : 0].getType();
|
||||
if (!parameterType2.equals(stringType)) {
|
||||
return;
|
||||
}
|
||||
|
||||
+12
-16
@@ -31,7 +31,7 @@ import java.util.Set;
|
||||
public class ConstantJUnitAssertArgumentInspection extends BaseInspection {
|
||||
|
||||
@NonNls
|
||||
private static final Set<String> ASSERT_METHODS = new HashSet();
|
||||
private static final Set<String> ASSERT_METHODS = new HashSet<>();
|
||||
|
||||
static {
|
||||
ASSERT_METHODS.add("assertTrue");
|
||||
@@ -60,28 +60,24 @@ public class ConstantJUnitAssertArgumentInspection extends BaseInspection {
|
||||
return new ConstantJUnitAssertArgumentVisitor();
|
||||
}
|
||||
|
||||
private static class ConstantJUnitAssertArgumentVisitor
|
||||
extends BaseInspectionVisitor {
|
||||
private static class ConstantJUnitAssertArgumentVisitor extends BaseInspectionVisitor {
|
||||
|
||||
@Override
|
||||
public void visitMethodCallExpression(
|
||||
PsiMethodCallExpression expression) {
|
||||
final PsiReferenceExpression methodExpression =
|
||||
expression.getMethodExpression();
|
||||
@NonNls final String methodName =
|
||||
methodExpression.getReferenceName();
|
||||
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
|
||||
final PsiReferenceExpression methodExpression = expression.getMethodExpression();
|
||||
@NonNls final String methodName = methodExpression.getReferenceName();
|
||||
if (!ASSERT_METHODS.contains(methodName)) {
|
||||
return;
|
||||
}
|
||||
|
||||
final PsiMethod method = expression.resolveMethod();
|
||||
if (method == null) {
|
||||
return;
|
||||
}
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
if (!InheritanceUtil.isInheritor(containingClass,
|
||||
JUnitCommonClassNames.JUNIT_FRAMEWORK_ASSERT) &&
|
||||
!InheritanceUtil.isInheritor(containingClass,
|
||||
JUnitCommonClassNames.ORG_JUNIT_ASSERT)) {
|
||||
final boolean messageOnFirstPosition = AssertEqualsHint.isMessageOnFirstPosition(containingClass);
|
||||
final boolean messageOnLastPosition = AssertEqualsHint.isMessageOnLastPosition(containingClass);
|
||||
if (!messageOnFirstPosition && !messageOnLastPosition) {
|
||||
return;
|
||||
}
|
||||
final PsiExpressionList argumentList = expression.getArgumentList();
|
||||
@@ -89,11 +85,11 @@ public class ConstantJUnitAssertArgumentInspection extends BaseInspection {
|
||||
if (arguments.length == 0) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression lastArgument = arguments[arguments.length - 1];
|
||||
if (!PsiUtil.isConstantExpression(lastArgument)) {
|
||||
final PsiExpression argument = arguments[messageOnFirstPosition ? arguments.length - 1 : 0];
|
||||
if (!PsiUtil.isConstantExpression(argument)) {
|
||||
return;
|
||||
}
|
||||
registerError(lastArgument);
|
||||
registerError(argument);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -37,6 +37,7 @@ public class TestMethodWithoutAssertionInspectionBase extends BaseInspection {
|
||||
methodMatcher = new MethodMatcher(true, "assertionMethods")
|
||||
.add(JUnitCommonClassNames.ORG_JUNIT_ASSERT, "assert.*|fail.*")
|
||||
.add(JUnitCommonClassNames.JUNIT_FRAMEWORK_ASSERT, "assert.*|fail.*")
|
||||
.add(JUnitCommonClassNames.ORG_JUNIT_JUPITER_API_ASSERTIONS, "assert.*|fail.*")
|
||||
.add("org.mockito.Mockito", "verify.*")
|
||||
.add("org.mockito.InOrder", "verify")
|
||||
.add("org.junit.rules.ExpectedException", "expect.*")
|
||||
|
||||
Reference in New Issue
Block a user