Skip to content

Commit

Permalink
Rename AnnotationInitialized to AnnotationConsumer
Browse files Browse the repository at this point in the history
  • Loading branch information
marcphilipp committed Mar 11, 2017
1 parent 4ddb1cc commit ca24ac4
Show file tree
Hide file tree
Showing 15 changed files with 34 additions and 36 deletions.
Expand Up @@ -27,10 +27,10 @@
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;


import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;


class JavaTimeArgumentConverter extends SimpleArgumentConverter class JavaTimeArgumentConverter extends SimpleArgumentConverter
implements AnnotationInitialized<JavaTimeConversionPattern> { implements AnnotationConsumer<JavaTimeConversionPattern> {


private static final Map<Class<?>, TemporalQuery<?>> TEMPORAL_QUERIES; private static final Map<Class<?>, TemporalQuery<?>> TEMPORAL_QUERIES;
static { static {
Expand All @@ -52,7 +52,7 @@ class JavaTimeArgumentConverter extends SimpleArgumentConverter
private String pattern; private String pattern;


@Override @Override
public void initialize(JavaTimeConversionPattern annotation) { public void accept(JavaTimeConversionPattern annotation) {
pattern = annotation.value(); pattern = annotation.value();
} }


Expand Down
Expand Up @@ -17,15 +17,15 @@
import com.univocity.parsers.csv.CsvParserSettings; import com.univocity.parsers.csv.CsvParserSettings;


import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;


class CsvArgumentsProvider implements ArgumentsProvider, AnnotationInitialized<CsvSource> { class CsvArgumentsProvider implements ArgumentsProvider, AnnotationConsumer<CsvSource> {


private String[] lines; private String[] lines;
private char delimiter; private char delimiter;


@Override @Override
public void initialize(CsvSource annotation) { public void accept(CsvSource annotation) {
lines = annotation.value(); lines = annotation.value();
delimiter = annotation.delimiter(); delimiter = annotation.delimiter();
} }
Expand Down
Expand Up @@ -25,11 +25,11 @@
import com.univocity.parsers.csv.CsvParserSettings; import com.univocity.parsers.csv.CsvParserSettings;


import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;
import org.junit.platform.commons.JUnitException; import org.junit.platform.commons.JUnitException;
import org.junit.platform.commons.util.Preconditions; import org.junit.platform.commons.util.Preconditions;


class CsvFileArgumentsProvider implements ArgumentsProvider, AnnotationInitialized<CsvFileSource> { class CsvFileArgumentsProvider implements ArgumentsProvider, AnnotationConsumer<CsvFileSource> {


private final BiFunction<Class<?>, String, InputStream> inputStreamProvider; private final BiFunction<Class<?>, String, InputStream> inputStreamProvider;


Expand All @@ -46,7 +46,7 @@ class CsvFileArgumentsProvider implements ArgumentsProvider, AnnotationInitializ
} }


@Override @Override
public void initialize(CsvFileSource annotation) { public void accept(CsvFileSource annotation) {
resources = annotation.resources(); resources = annotation.resources();
charset = Charset.forName(annotation.encoding()); charset = Charset.forName(annotation.encoding());
settings = new CsvParserSettings(); settings = new CsvParserSettings();
Expand Down
Expand Up @@ -17,15 +17,15 @@
import java.util.stream.Stream; import java.util.stream.Stream;


import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;


class EnumArgumentsProvider implements ArgumentsProvider, AnnotationInitialized<EnumSource> { class EnumArgumentsProvider implements ArgumentsProvider, AnnotationConsumer<EnumSource> {


private Class<? extends Enum<?>> enumClass; private Class<? extends Enum<?>> enumClass;
private Set<String> names = Collections.emptySet(); private Set<String> names = Collections.emptySet();


@Override @Override
public void initialize(EnumSource annotation) { public void accept(EnumSource annotation) {
enumClass = annotation.value(); enumClass = annotation.value();
if (annotation.names().length > 0) { if (annotation.names().length > 0) {
names = Stream.of(annotation.names()).collect(Collectors.toSet()); names = Stream.of(annotation.names()).collect(Collectors.toSet());
Expand Down
Expand Up @@ -14,17 +14,17 @@
import java.util.stream.Stream; import java.util.stream.Stream;


import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;
import org.junit.platform.commons.JUnitException; import org.junit.platform.commons.JUnitException;
import org.junit.platform.commons.util.CollectionUtils; import org.junit.platform.commons.util.CollectionUtils;
import org.junit.platform.commons.util.ReflectionUtils; import org.junit.platform.commons.util.ReflectionUtils;


class MethodArgumentsProvider implements ArgumentsProvider, AnnotationInitialized<MethodSource> { class MethodArgumentsProvider implements ArgumentsProvider, AnnotationConsumer<MethodSource> {


private String[] methodNames; private String[] methodNames;


@Override @Override
public void initialize(MethodSource annotation) { public void accept(MethodSource annotation) {
methodNames = annotation.names(); methodNames = annotation.names();
} }


Expand Down
Expand Up @@ -19,15 +19,15 @@
import java.util.stream.Stream; import java.util.stream.Stream;


import org.junit.jupiter.api.extension.ContainerExtensionContext; import org.junit.jupiter.api.extension.ContainerExtensionContext;
import org.junit.jupiter.params.support.AnnotationInitialized; import org.junit.jupiter.params.support.AnnotationConsumer;
import org.junit.platform.commons.util.Preconditions; import org.junit.platform.commons.util.Preconditions;


class ValueArgumentsProvider implements ArgumentsProvider, AnnotationInitialized<ValueSource> { class ValueArgumentsProvider implements ArgumentsProvider, AnnotationConsumer<ValueSource> {


private Object[] arguments; private Object[] arguments;


@Override @Override
public void initialize(ValueSource source) { public void accept(ValueSource source) {
List<Object> arrays = Stream.of(source.strings(), source.ints(), source.longs(), source.doubles()) // List<Object> arrays = Stream.of(source.strings(), source.ints(), source.longs(), source.doubles()) //
.filter(array -> Array.getLength(array) > 0) // .filter(array -> Array.getLength(array) > 0) //
.collect(toList()); .collect(toList());
Expand Down
Expand Up @@ -11,9 +11,7 @@
package org.junit.jupiter.params.support; package org.junit.jupiter.params.support;


import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.function.Consumer;


public interface AnnotationInitialized<A extends Annotation> { public interface AnnotationConsumer<A extends Annotation> extends Consumer<A> {

void initialize(A annotation);

} }
Expand Up @@ -28,8 +28,8 @@ public final class AnnotationInitializer {


@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <T> T initialize(AnnotatedElement annotatedElement, T instance) { public static <T> T initialize(AnnotatedElement annotatedElement, T instance) {
if (instance instanceof AnnotationInitialized) { if (instance instanceof AnnotationConsumer) {
Predicate<Method> methodPredicate = method -> method.getName().equals("initialize") Predicate<Method> methodPredicate = method -> method.getName().equals("accept")
&& method.getParameterCount() == 1 && method.getParameterCount() == 1
&& Annotation.class.isAssignableFrom(method.getParameterTypes()[0]); && Annotation.class.isAssignableFrom(method.getParameterTypes()[0]);
Method method = ReflectionUtils.findMethods(instance.getClass(), methodPredicate, Method method = ReflectionUtils.findMethods(instance.getClass(), methodPredicate,
Expand All @@ -38,14 +38,14 @@ public static <T> T initialize(AnnotatedElement annotatedElement, T instance) {
Annotation annotation = AnnotationUtils.findAnnotation(annotatedElement, annotationType) // Annotation annotation = AnnotationUtils.findAnnotation(annotatedElement, annotationType) //
.orElseThrow(() -> new JUnitException(instance.getClass().getName() + " needs to be used with a " .orElseThrow(() -> new JUnitException(instance.getClass().getName() + " needs to be used with a "
+ annotationType.getName() + " annotation")); + annotationType.getName() + " annotation"));
callInitialize((AnnotationInitialized) instance, annotation); callInitialize((AnnotationConsumer) instance, annotation);
} }
return instance; return instance;
} }


private static <A extends Annotation> void callInitialize(AnnotationInitialized<A> instance, A annotation) { private static <A extends Annotation> void callInitialize(AnnotationConsumer<A> instance, A annotation) {
try { try {
instance.initialize(annotation); instance.accept(annotation);
} }
catch (Exception ex) { catch (Exception ex) {
throw new JUnitException("Failed to initialize instance: " + instance, ex); throw new JUnitException("Failed to initialize instance: " + instance, ex);
Expand Down
Expand Up @@ -30,7 +30,7 @@


class ParamsApiPlayground { class ParamsApiPlayground {


@ParameterizedTest @ParameterizedTest(name = "{0}")
@EnumSource(TimeUnit.class) @EnumSource(TimeUnit.class)
void testWithParametersFromEnum(TimeUnit unit) { void testWithParametersFromEnum(TimeUnit unit) {
} }
Expand All @@ -51,8 +51,8 @@ void testWithParametersFromLongArray(long number) {
} }


@ParameterizedTest @ParameterizedTest
@CsvSource({ "foo, 1", "bar, 2", "'baz, qux', 3" }) @CsvSource({ "foo, 1, 3", "bar, 2, 42", "'baz, qux', 3" })
void testWithParametersFromAnnotation(String parameter, int i) { void testWithParametersFromAnnotation(String parameter, int i, long j) {
} }


@ParameterizedTest @ParameterizedTest
Expand Down
Expand Up @@ -112,7 +112,7 @@ private Object convert(Object input, String pattern, Class<?> targetClass) {
JavaTimeArgumentConverter converter = new JavaTimeArgumentConverter(); JavaTimeArgumentConverter converter = new JavaTimeArgumentConverter();
JavaTimeConversionPattern annotation = mock(JavaTimeConversionPattern.class); JavaTimeConversionPattern annotation = mock(JavaTimeConversionPattern.class);
when(annotation.value()).thenReturn(pattern); when(annotation.value()).thenReturn(pattern);
converter.initialize(annotation); converter.accept(annotation);


return converter.convert(input, targetClass); return converter.convert(input, targetClass);
} }
Expand Down
Expand Up @@ -61,7 +61,7 @@ private Stream<Object[]> provideArguments(char delimiter, String... value) {
when(annotation.delimiter()).thenReturn(delimiter); when(annotation.delimiter()).thenReturn(delimiter);


CsvArgumentsProvider provider = new CsvArgumentsProvider(); CsvArgumentsProvider provider = new CsvArgumentsProvider();
provider.initialize(annotation); provider.accept(annotation);
return provider.arguments(null).map(Arguments::get); return provider.arguments(null).map(Arguments::get);
} }


Expand Down
Expand Up @@ -113,7 +113,7 @@ private Stream<Object[]> provideArguments(InputStream inputStream, String lineSe
} }


private Stream<Object[]> provide(CsvFileArgumentsProvider provider, CsvFileSource annotation) { private Stream<Object[]> provide(CsvFileArgumentsProvider provider, CsvFileSource annotation) {
provider.initialize(annotation); provider.accept(annotation);
ContainerExtensionContext context = mock(ContainerExtensionContext.class); ContainerExtensionContext context = mock(ContainerExtensionContext.class);
when(context.getTestClass()).thenReturn(Optional.of(CsvFileArgumentsProviderTests.class)); when(context.getTestClass()).thenReturn(Optional.of(CsvFileArgumentsProviderTests.class));
return provider.arguments(context).map(Arguments::get); return provider.arguments(context).map(Arguments::get);
Expand Down
Expand Up @@ -68,7 +68,7 @@ private Stream<Object[]> provideArguments(Class<? extends Enum<?>> enumClass, St
when(annotation.names()).thenAnswer(invocation -> names); when(annotation.names()).thenAnswer(invocation -> names);


EnumArgumentsProvider provider = new EnumArgumentsProvider(); EnumArgumentsProvider provider = new EnumArgumentsProvider();
provider.initialize(annotation); provider.accept(annotation);
return provider.arguments(null).map(Arguments::get); return provider.arguments(null).map(Arguments::get);
} }


Expand Down
Expand Up @@ -136,7 +136,7 @@ private Stream<Object[]> provideArguments(Class<?> testClass, String... methodNa
when(context.getTestClass()).thenReturn(Optional.ofNullable(testClass)); when(context.getTestClass()).thenReturn(Optional.ofNullable(testClass));


MethodArgumentsProvider provider = new MethodArgumentsProvider(); MethodArgumentsProvider provider = new MethodArgumentsProvider();
provider.initialize(annotation); provider.accept(annotation);
return provider.arguments(context).map(Arguments::get); return provider.arguments(context).map(Arguments::get);
} }
} }
Expand Up @@ -76,7 +76,7 @@ private Stream<Object[]> provideArguments(String[] strings, int[] ints, long[] l
when(annotation.doubles()).thenReturn(doubles); when(annotation.doubles()).thenReturn(doubles);


ValueArgumentsProvider provider = new ValueArgumentsProvider(); ValueArgumentsProvider provider = new ValueArgumentsProvider();
provider.initialize(annotation); provider.accept(annotation);
return provider.arguments(null).map(Arguments::get); return provider.arguments(null).map(Arguments::get);
} }


Expand Down

0 comments on commit ca24ac4

Please sign in to comment.