From a6b9d5d8a0b81cefffcdeea73c085a650d9a249d Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Wed, 2 Nov 2016 18:36:56 +0100 Subject: [PATCH] disable junit 4 -> junit 5 conversion for Test annotations with parameters (IDEA-163478) --- .../ig/junit/JUnit5ConverterInspection.java | 5 ++++ .../ExpectedOnTestAnnotation.java | 26 +++++++++++++++++++ .../fixes/junit/Junit5ConverterFixTest.java | 4 +++ 3 files changed, 35 insertions(+) create mode 100644 plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/junit5_converter/ExpectedOnTestAnnotation.java diff --git a/plugins/InspectionGadgets/src/com/siyeh/ig/junit/JUnit5ConverterInspection.java b/plugins/InspectionGadgets/src/com/siyeh/ig/junit/JUnit5ConverterInspection.java index f829f267208e..929bbb6f4f21 100644 --- a/plugins/InspectionGadgets/src/com/siyeh/ig/junit/JUnit5ConverterInspection.java +++ b/plugins/InspectionGadgets/src/com/siyeh/ig/junit/JUnit5ConverterInspection.java @@ -102,6 +102,11 @@ public class JUnit5ConverterInspection extends BaseInspection { if (AnnotationUtil.isAnnotated(method, ruleAnnotations)) { return; } + + PsiAnnotation testAnnotation = AnnotationUtil.findAnnotation(method, true, JUnitCommonClassNames.ORG_JUNIT_TEST); + if (testAnnotation != null && testAnnotation.getParameterList().getAttributes().length > 0) { + return; + } } registerClassError(aClass); diff --git a/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/junit5_converter/ExpectedOnTestAnnotation.java b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/junit5_converter/ExpectedOnTestAnnotation.java new file mode 100644 index 000000000000..03994030e8bc --- /dev/null +++ b/plugins/InspectionGadgets/test/com/siyeh/igfixes/junit/junit5_converter/ExpectedOnTestAnnotation.java @@ -0,0 +1,26 @@ +/* + * 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 org.junit.Test; + +import static org.junit.Assert.*; + + +public class Simple { + + @Test(expected = Exception.class) + public void test_first() throws Exception { + } +} diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/Junit5ConverterFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/Junit5ConverterFixTest.java index 7cd269ac7f44..2b42603eac12 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/Junit5ConverterFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/junit/Junit5ConverterFixTest.java @@ -25,6 +25,10 @@ public class Junit5ConverterFixTest extends IGQuickFixesTestCase { doTest(); } + public void testExpectedOnTestAnnotation() throws Exception { + assertQuickfixNotAvailable(); + } + @Override protected void setUp() throws Exception { super.setUp();