From 83dbb91e94267f188fccefd68b5e07e8fcd5cc4a Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 8 Nov 2016 16:35:26 +0100 Subject: [PATCH] junit 5: don't warn on fail with message that message is missing (IDEA-163692) --- .../siyeh/ig/testFrameworks/AssertHint.java | 2 +- .../FailWithMessage.java | 22 +++++++ ...tAssertsWithoutMessagesInspectionTest.java | 65 +++++++++++++++++++ 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igtest/junit/junit_asserts_without_messages/FailWithMessage.java create mode 100644 plugins/InspectionGadgets/testsrc/com/siyeh/ig/junit/JUnitAssertsWithoutMessagesInspectionTest.java diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/testFrameworks/AssertHint.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/testFrameworks/AssertHint.java index c33da6f52514..cd4742532aaf 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/testFrameworks/AssertHint.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/testFrameworks/AssertHint.java @@ -108,7 +108,7 @@ public class AssertHint { } else { argumentIndex = 0; - if (parameters.length > minimumParamCount && minimumParamCount > 0) { + if (parameters.length > minimumParamCount && minimumParamCount >= 0) { int lastParameterIdx = parameters.length - 1; //check that it's not delta in assertEquals(dbl, dbl, dbl), etc if (parameters[lastParameterIdx].getType() instanceof PsiClassType) { diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/junit_asserts_without_messages/FailWithMessage.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/junit_asserts_without_messages/FailWithMessage.java new file mode 100644 index 000000000000..1ef621f730f4 --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/junit/junit_asserts_without_messages/FailWithMessage.java @@ -0,0 +1,22 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * 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. + */ +import static org.junit.jupiter.api.Assertions.fail; +public class FailWithMessage { + @org.junit.Test + public void testFailWithMessage() { + fail("some reason"); + } +} diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/junit/JUnitAssertsWithoutMessagesInspectionTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/junit/JUnitAssertsWithoutMessagesInspectionTest.java new file mode 100644 index 000000000000..0352fb2b454d --- /dev/null +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/junit/JUnitAssertsWithoutMessagesInspectionTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 2000-2016 JetBrains s.r.o. + * + * 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.ig.junit; + +import com.intellij.codeInspection.InspectionProfileEntry; +import com.intellij.testFramework.LightProjectDescriptor; +import com.siyeh.ig.LightInspectionTestCase; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +public class JUnitAssertsWithoutMessagesInspectionTest extends LightInspectionTestCase { + + public void testFailWithMessage() { + doTest(); + } + + @Override + protected String[] getEnvironmentClasses() { + return new String[] { + "package org.junit;" + + "import java.lang.annotation.ElementType;" + + "import java.lang.annotation.Retention;" + + "import java.lang.annotation.RetentionPolicy;" + + "import java.lang.annotation.Target;" + + "@Retention(RetentionPolicy.RUNTIME)" + + "@Target({ElementType.METHOD})" + + "public @interface Test {}", + "package org.junit;" + + "public class Assert {" + + " static public void assertEquals(double expected, double actual, double delta) {}" + + " static public void assertEquals(Object expected, Object actual){}" + + "}", + + "package org.junit.jupiter.api;\n" + + "public final class Assertions {\n" + + " public static void fail(String message) {}\n" + + "}" + }; + } + + @NotNull + @Override + protected LightProjectDescriptor getProjectDescriptor() { + return JAVA_8; + } + + @Nullable + @Override + protected InspectionProfileEntry getInspection() { + return new JUnitAssertsWithoutMessagesInspection(); + } +} \ No newline at end of file