From 3132810c4721b8550d490b50111e3ea1aa9bcbb8 Mon Sep 17 00:00:00 2001 From: Gijs de Jong Date: Wed, 26 Oct 2022 11:28:24 +0200 Subject: [PATCH] Add support for migrating `groups` attribute --- .../AnnotationAttributeReplacement.java | 18 ++++++++++++++++++ .../AnnotationAttributeReplacementTest.java | 5 +++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacement.java b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacement.java index f6be831f..0d5b5550 100644 --- a/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacement.java +++ b/error-prone-contrib/src/main/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacement.java @@ -105,6 +105,24 @@ public final class AnnotationAttributeReplacement extends BugChecker implements SourceCode.treeToString( assignmentTree.getExpression(), state)))) .build())) + .put( + singleArgumentMatcher("org.testng.annotations.Test#groups"), + (annotation, argument, state) -> + Optional.of(argument) + .filter(AssignmentTree.class::isInstance) + .map(AssignmentTree.class::cast) + .map( + assignmentTree -> + SuggestedFix.builder() + .merge(removeAnnotationArgument(annotation, argument, state)) + .merge( + SuggestedFix.postfixWith( + annotation, + String.format( + "\n@org.junit.jupiter.api.Tag(%s)", + SourceCode.treeToString( + assignmentTree.getExpression(), state)))) + .build())) .build(); @Override diff --git a/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacementTest.java b/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacementTest.java index 32f48ec6..4d6e4b44 100644 --- a/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacementTest.java +++ b/error-prone-contrib/src/test/java/tech/picnic/errorprone/bugpatterns/AnnotationAttributeReplacementTest.java @@ -42,13 +42,13 @@ final class AnnotationAttributeReplacementTest { "import org.testng.annotations.Test;", "", "class A {", - " @Test(priority = 1, description = \"test\")", + " @Test(priority = 1, groups = \"unit\", description = \"test\")", " public void foo() {}", "}") .addOutputLines( "A.java", "import org.junit.jupiter.api.MethodOrderer;", - "import org.junit.jupiter.api.TestMethodOrder;", + "import org.junit.jupiter.api.TestMethodOrder;", "import org.testng.annotations.Test;", "", "@TestMethodOrder(MethodOrderer.OrderAnnotation.class)", @@ -56,6 +56,7 @@ final class AnnotationAttributeReplacementTest { " @Test", " @org.junit.jupiter.api.Order(1)", " @org.junit.jupiter.api.DisplayName(\"test\")", + " @org.junit.jupiter.api.Tag(\"unit\")", " public void foo() {}", "}") .doTest(TEXT_MATCH);