From 32d21117bbb7fe1bdd430bca4fdab7b7a10ba62d Mon Sep 17 00:00:00 2001 From: Bas Date: Fri, 16 Oct 2009 15:12:30 +0200 Subject: [PATCH] another intention that should only be applicable to JUnit assert methods --- .../junit/AssertEqualsLiteralPredicate.java | 61 ------------------- .../AssertEqualsWithLiteralPredicate.java | 27 +++++--- 2 files changed, 20 insertions(+), 68 deletions(-) delete mode 100644 plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsLiteralPredicate.java diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsLiteralPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsLiteralPredicate.java deleted file mode 100644 index 64777ec15146..000000000000 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsLiteralPredicate.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2003-2005 Dave Griffith - * - * Licensed 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 com.siyeh.ipp.junit; - -import com.intellij.psi.*; -import com.siyeh.ipp.base.PsiElementPredicate; -import com.siyeh.ipp.psiutils.ErrorUtil; -import org.jetbrains.annotations.NonNls; - -class AssertEqualsLiteralPredicate implements PsiElementPredicate{ - - public boolean satisfiedBy(PsiElement element){ - if(!(element instanceof PsiMethodCallExpression)){ - return false; - } - final PsiMethodCallExpression expression = - (PsiMethodCallExpression) element; - final PsiExpressionList argumentList = expression.getArgumentList(); - final PsiExpression[] args = argumentList.getExpressions(); - final int numArgs = args.length; - if(numArgs < 2 || numArgs > 3){ - return false; - } - final PsiReferenceExpression methodExpression = - expression.getMethodExpression(); - @NonNls final String methodName = methodExpression.getReferenceName(); - if(!"assertEquals".equals(methodName)){ - return false; - } - if(ErrorUtil.containsError(element)){ - return false; - } - if(numArgs == 2){ - return !isSpecialCase(args[0]) && !isSpecialCase(args[1]); - } else{ - return !isSpecialCase(args[1]) && !isSpecialCase(args[2]); - } - } - - private static boolean isSpecialCase(PsiExpression exp){ - if(exp == null){ - return false; - } - @NonNls final String text = exp.getText(); - return "true".equals(text) || "false".equals(text) || - "null".equals(text); - } -} \ No newline at end of file diff --git a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsWithLiteralPredicate.java b/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsWithLiteralPredicate.java index 3e629d891733..842ff1c4e34d 100644 --- a/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsWithLiteralPredicate.java +++ b/plugins/IntentionPowerPak/src/com/siyeh/ipp/junit/AssertEqualsWithLiteralPredicate.java @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Dave Griffith + * Copyright 2003-2009 Dave Griffith, Bas Leijdekkers * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,9 +29,9 @@ class AssertEqualsWithLiteralPredicate implements PsiElementPredicate{ final PsiMethodCallExpression expression = (PsiMethodCallExpression) element; final PsiExpressionList argumentList = expression.getArgumentList(); - final PsiExpression[] args = argumentList.getExpressions(); - final int numArgs = args.length; - if(numArgs < 2 || numArgs > 3){ + final PsiExpression[] arguments = argumentList.getExpressions(); + final int argumentCount = arguments.length; + if(argumentCount < 2 || argumentCount > 3){ return false; } final PsiReferenceExpression methodExpression = @@ -43,10 +43,23 @@ class AssertEqualsWithLiteralPredicate implements PsiElementPredicate{ if(ErrorUtil.containsError(element)){ return false; } - if(numArgs == 2){ - return isSpecialLiteral(args[0]) || isSpecialLiteral(args[1]); + final PsiMethod method = expression.resolveMethod(); + if (method == null) { + return false; + } + final PsiClass targetClass = method.getContainingClass(); + if (targetClass == null) { + return false; + } + final String qualifiedName = targetClass.getQualifiedName(); + if (!"junit.framework.Assert".equals(qualifiedName) && + !"org.junit.Assert".equals(qualifiedName)) { + return false; + } + if(argumentCount == 2){ + return isSpecialLiteral(arguments[0]) || isSpecialLiteral(arguments[1]); } else{ - return isSpecialLiteral(args[1]) || isSpecialLiteral(args[2]); + return isSpecialLiteral(arguments[1]) || isSpecialLiteral(arguments[2]); } }