From 8a80bb8368d8edc86837a963ce64d053a3a0a19e Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 28 Dec 2017 18:46:19 +0100 Subject: [PATCH] replace old assert with new (IDEA-175693) deprecated method always fail, add default delta to preserve the test state --- .../ig/junit/UseOfObsoleteAssertInspection.java | 12 ++++++++++++ .../addingDeltaToAvoidFailure.after.java | 7 +++++++ .../addingDeltaToAvoidFailure.java | 7 +++++++ .../junit/UseOfObsoleteAssertInspectionTest.java | 14 ++++++++++++-- 4 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.after.java create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/UseOfObsoleteAssertInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/UseOfObsoleteAssertInspection.java index 01fc3412f67b..44f5b605b7af 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/UseOfObsoleteAssertInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/junit/UseOfObsoleteAssertInspection.java @@ -147,6 +147,18 @@ public class UseOfObsoleteAssertInspection extends BaseInspection { styleManager.shortenClassReferences(methodExpression); } } + + PsiMethod newTarget = methodCallExpression.resolveMethod(); + if (newTarget != null && newTarget.isDeprecated()) { + PsiParameter[] parameters = newTarget.getParameterList().getParameters(); + if (parameters.length > 0) { + PsiType paramType = parameters[parameters.length - 1].getType(); + if (PsiType.DOUBLE.equals(paramType) || PsiType.FLOAT.equals(paramType)) { + methodCallExpression.getArgumentList().add(JavaPsiFacade.getElementFactory(project).createExpressionFromText("0.0", methodCallExpression)); + } + } + } + /* //refs can be optimized now but should we really? if (isImportUnused) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.after.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.after.java new file mode 100644 index 000000000000..d29b4e378f47 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.after.java @@ -0,0 +1,7 @@ +import static org.junit.Assert.assertEquals; + +class MyTest { + public void test() { + assertEquals(1.0, 1.0, 0.0); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.java new file mode 100644 index 000000000000..74da99088e2f --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/useOfObsoleteAssert/addingDeltaToAvoidFailure.java @@ -0,0 +1,7 @@ +import static junit.framework.Assert.assertEquals; + +class MyTest { + public void test() { + assertEquals(1.0, 1.0); + } +} \ No newline at end of file diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/UseOfObsoleteAssertInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/UseOfObsoleteAssertInspectionTest.java index bf70937998ee..9caa63b11095 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/UseOfObsoleteAssertInspectionTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/UseOfObsoleteAssertInspectionTest.java @@ -24,10 +24,16 @@ public class UseOfObsoleteAssertInspectionTest extends IGQuickFixesTestCase { public void setUp() throws Exception { super.setUp(); - myFixture.addClass("package junit.framework; public class Assert { public static void fail(){}}"); + myFixture.addClass("package junit.framework; public class Assert { public static void fail(){}" + + "public static void assertEquals(double d1, double d2, double d3) {}" + + "public static void assertEquals(Object o1, Object o2) {}" + + "}"); myFixture.addClass("package junit.framework; public class TestCase extends Assert {}"); - myFixture.addClass("package org.junit; public class Assert { public static void fail(){}}"); + myFixture.addClass("package org.junit; public class Assert { " + + "public static void fail(){}" + + "@Deprecated public static void assertEquals(double d1, double d2) {}" + + " public static void assertEquals(double d1, double d2, double d3) {}}"); myFixture.enableInspections(new UseOfObsoleteAssertInspection()); } @@ -56,6 +62,10 @@ public class UseOfObsoleteAssertInspectionTest extends IGQuickFixesTestCase { doFixTest(); } + public void testAddingDeltaToAvoidFailure() { + doFixTest(); + } + private void doFixTest() { doTest(getTestName(true), InspectionGadgetsBundle.message("use.of.obsolete.assert.quickfix")); }