AMLSim
/
jars
/junit5-r5.10.2
/documentation
/src
/test
/java
/example
/MethodSourceParameterResolutionDemo.java
/* | |
* Copyright 2015-2023 the original author or authors. | |
* | |
* All rights reserved. This program and the accompanying materials are | |
* made available under the terms of the Eclipse Public License v2.0 which | |
* accompanies this distribution and is available at | |
* | |
* https://www.eclipse.org/legal/epl-v20.html | |
*/ | |
package example; | |
import static org.junit.jupiter.api.Assertions.assertTrue; | |
import static org.junit.jupiter.params.provider.Arguments.arguments; | |
import java.util.stream.Stream; | |
import org.junit.jupiter.api.extension.ExtensionContext; | |
import org.junit.jupiter.api.extension.ParameterContext; | |
import org.junit.jupiter.api.extension.ParameterResolver; | |
import org.junit.jupiter.api.extension.RegisterExtension; | |
import org.junit.jupiter.params.ParameterizedTest; | |
import org.junit.jupiter.params.provider.Arguments; | |
import org.junit.jupiter.params.provider.MethodSource; | |
class MethodSourceParameterResolutionDemo { | |
// @formatter:off | |
// tag::parameter_resolution_MethodSource_example[] | |
static final IntegerResolver integerResolver = new IntegerResolver(); | |
void testWithFactoryMethodWithArguments(String argument) { | |
assertTrue(argument.startsWith("2")); | |
} | |
static Stream<Arguments> factoryMethodWithArguments(int quantity) { | |
return Stream.of( | |
arguments(quantity + " apples"), | |
arguments(quantity + " lemons") | |
); | |
} | |
static class IntegerResolver implements ParameterResolver { | |
public boolean supportsParameter(ParameterContext parameterContext, | |
ExtensionContext extensionContext) { | |
return parameterContext.getParameter().getType() == int.class; | |
} | |
public Object resolveParameter(ParameterContext parameterContext, | |
ExtensionContext extensionContext) { | |
return 2; | |
} | |
} | |
// end::parameter_resolution_MethodSource_example[] | |
// @formatter:on | |
} | |