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 InvalidPersonParameterResolver implements ParameterResolver { /** * The "bad" (invalid) data for testing purposes has to go somewhere, right? */ public static Person[] INVALID_PERSONS = { new Person().setId(1L).setLastName("Ad_ams").setFirstName("Jill,"), new Person().setId(2L).setLastName(",Baker").setFirstName(""), new Person().setId(3L).setLastName(null).setFirstName(null), new Person().setId(4L).setLastName("Daniel&").setFirstName("{Joseph}"), new Person().setId(5L).setLastName("").setFirstName("English, 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 = INVALID_PERSONS[new Random().nextInt(INVALID_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; } }