Skip to content

Commit

Permalink
PSF-9432 Introduce JUnit Arguments Refaster Rule
Browse files Browse the repository at this point in the history
  • Loading branch information
werli committed Aug 2, 2020
1 parent a842d30 commit e18ad17
Show file tree
Hide file tree
Showing 5 changed files with 79 additions and 1 deletion.
1 change: 0 additions & 1 deletion error-prone-contrib/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package tech.picnic.errorprone.refastertemplates;

import static org.junit.jupiter.params.provider.Arguments.arguments;

import com.google.errorprone.refaster.ImportPolicy;
import com.google.errorprone.refaster.annotation.AfterTemplate;
import com.google.errorprone.refaster.annotation.BeforeTemplate;
import com.google.errorprone.refaster.annotation.Repeated;
import com.google.errorprone.refaster.annotation.UseImportPolicy;
import org.junit.jupiter.params.provider.Arguments;

/**
* Refaster templates which replaces argument creation for parametrized JUnit tests using {@link
* Arguments#of} with statically imported {@link Arguments#arguments} calls.
*/
final class JUnitArgumentsTemplates {
private JUnitArgumentsTemplates() {}

/** Prefer statically imported {@link Arguments#arguments} over {@link Arguments#of} calls. */
static final class ArgumentsReplace<T> {
@BeforeTemplate
Arguments before(@Repeated T objs) {
return Arguments.of(objs);
}

@AfterTemplate
@UseImportPolicy(ImportPolicy.STATIC_IMPORT_ALWAYS)
Arguments after(@Repeated T objs) {
return arguments(objs);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ public final class RefasterCheckTest {
"ImmutableSortedMultiset",
"ImmutableSortedSet",
"IntStream",
"JUnitArguments",
"LongStream",
"MapEntry",
"Mockito",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package tech.picnic.errorprone.bugpatterns;

import java.util.stream.Stream;
import org.junit.jupiter.params.provider.Arguments;

final class JUnitTemplatesTest implements RefasterTemplateTestCase {
Arguments testSingle() {
return Arguments.of("foo");
}

Arguments testMultiple() {
return Arguments.of(1, "foo", 2, "bar");
}

Stream<Arguments> testSingleInStream() {
return Stream.of(Arguments.of("foo"));
}

Stream<Arguments> testMultipleInStream() {
return Stream.of(Arguments.of(1, "foo", 2, "bar"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package tech.picnic.errorprone.bugpatterns;

import static org.junit.jupiter.params.provider.Arguments.arguments;

import java.util.stream.Stream;
import org.junit.jupiter.params.provider.Arguments;

final class JUnitTemplatesTest implements RefasterTemplateTestCase {
Arguments testSingle() {
return arguments("foo");
}

Arguments testMultiple() {
return arguments(1, "foo", 2, "bar");
}

Stream<Arguments> testSingleInStream() {
return Stream.of(arguments("foo"));
}

Stream<Arguments> testMultipleInStream() {
return Stream.of(arguments(1, "foo", 2, "bar"));
}
}

0 comments on commit e18ad17

Please sign in to comment.