62 lines
2.1 KiB
Java
62 lines
2.1 KiB
Java
package com.baeldung.param;
|
|
|
|
import java.util.Random;
|
|
|
|
import org.junit.jupiter.api.extension.ExtensionContext;
|
|
import org.junit.jupiter.api.extension.ParameterContext;
|
|
import org.junit.jupiter.api.extension.ParameterResolutionException;
|
|
import org.junit.jupiter.api.extension.ParameterResolver;
|
|
|
|
public class ValidPersonParameterResolver implements ParameterResolver {
|
|
|
|
/**
|
|
* The "good" (valid) data for testing purposes has to go somewhere, right?
|
|
*/
|
|
public static Person[] VALID_PERSONS = { new Person().setId(1L)
|
|
.setLastName("Adams")
|
|
.setFirstName("Jill"),
|
|
new Person().setId(2L)
|
|
.setLastName("Baker")
|
|
.setFirstName("James"),
|
|
new Person().setId(3L)
|
|
.setLastName("Carter")
|
|
.setFirstName("Samanta"),
|
|
new Person().setId(4L)
|
|
.setLastName("Daniels")
|
|
.setFirstName("Joseph"),
|
|
new Person().setId(5L)
|
|
.setLastName("English")
|
|
.setFirstName("Jane"),
|
|
new Person().setId(6L)
|
|
.setLastName("Fontana")
|
|
.setFirstName("Enrique"),
|
|
// TODO: ADD MORE DATA HERE
|
|
};
|
|
|
|
@Override
|
|
public Object resolveParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
|
|
Object ret = null;
|
|
//
|
|
// Return a random, valid Person object if Person.class is the type of Parameter
|
|
/// to be resolved. Otherwise return null.
|
|
if (parameterContext.getParameter()
|
|
.getType() == Person.class) {
|
|
ret = VALID_PERSONS[new Random().nextInt(VALID_PERSONS.length)];
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
@Override
|
|
public boolean supportsParameter(ParameterContext parameterContext, ExtensionContext extensionContext) throws ParameterResolutionException {
|
|
boolean ret = false;
|
|
//
|
|
// If the Parameter.type == Person.class, then we support it, otherwise, get outta here!
|
|
if (parameterContext.getParameter()
|
|
.getType() == Person.class) {
|
|
ret = true;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
}
|