![JAR search and dependency download from the Maven repository](/logo.png)
net.jqwik.web.EmailArbitraryProvider Maven / Gradle / Ivy
package net.jqwik.web;
import java.util.*;
import net.jqwik.api.*;
import net.jqwik.api.providers.*;
import net.jqwik.web.api.*;
public class EmailArbitraryProvider implements ArbitraryProvider {
@Override
public boolean canProvideFor(TypeUsage targetType) {
return targetType.isAssignableFrom(String.class) && targetType.findAnnotation(Email.class).isPresent();
}
@Override
public Set> provideFor(TypeUsage targetType, SubtypeProvider subtypeProvider) {
Optional optionalEmail = targetType.findAnnotation(Email.class);
return optionalEmail.map(email -> {
EmailArbitrary emailArbitrary = Web.emails();
if (email.quotedLocalPart()) {
emailArbitrary = emailArbitrary.allowQuotedLocalPart();
}
if (email.ipv4Host()) {
emailArbitrary = emailArbitrary.allowIpv4Host();
}
if (email.ipv6Host()) {
emailArbitrary = emailArbitrary.allowIpv6Host();
}
return Collections.>singleton(emailArbitrary);
}).orElse(Collections.emptySet());
}
@Override
public int priority() {
return 5;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy