下面列出了javax.validation.ConstraintValidator#javax.validation.Validation 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public Class<?> loadClass(String name) throws ClassNotFoundException {
String vaadinPackagePrefix = VaadinServlet.class.getPackage()
.getName();
vaadinPackagePrefix = vaadinPackagePrefix.substring(0,
vaadinPackagePrefix.lastIndexOf('.'));
if (name.equals(UnitTest.class.getName())) {
super.loadClass(name);
} else if (name
.startsWith(Validation.class.getPackage().getName())) {
throw new ClassNotFoundException();
} else if (name.startsWith(vaadinPackagePrefix)) {
String path = name.replace('.', '/').concat(".class");
URL resource = Thread.currentThread().getContextClassLoader()
.getResource(path);
InputStream stream;
try {
stream = resource.openStream();
byte[] bytes = IOUtils.toByteArray(stream);
return defineClass(name, bytes, 0, bytes.length);
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return super.loadClass(name);
}
@Test
public void test_WHEN_valid_GIVEN_valid_model_THEN_ok_no_errors() {
// GIVEN
PersonModel person = new PersonModel( //
"Kim", //
"Kardashian", //
new GregorianCalendar(1980, Calendar.OCTOBER, 21));
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
// WHEN
Set<ConstraintViolation<PersonModel>> constraintViolations = validator
.validate(person);
// THEN
assertThat(constraintViolations).isEmpty();
}
@BeforeClass
public static void setUp() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
Class c = resolver.getClass();
InputStream is = c.getResourceAsStream("/ValidationMessages.properties");
if (is != null) {
try {
resolver.load(is);
resolver.list(System.out);
is.close();
} catch (IOException e) {
e.printStackTrace(); // To change body of catch statement use File | Settings | File Templates.
}
}
}
public void initialize(final URL location, final ResourceBundle resources) {
final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
final Model model = new Model();
final Validator validator = factory.getValidator();
nameField.textProperty().bindBidirectional(model.nameProperty());
model.countProperty().bind(Bindings.createObjectBinding(() ->
countSlider.valueProperty().intValue()
, countSlider.valueProperty()));
validateButton.setOnAction(e -> {
final Set<ConstraintViolation<Model>> violations = validator.validate(model);
validateMessageLabel.setText(violations.stream().map(v -> v.getMessage()).reduce("", (a, b) -> a + b));
});
}
@Test
public void test(){
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
ReqBody reqBody = new ReqBody();
Set<ConstraintViolation<Object>> validRetval = validator.validate(reqBody);
StringBuilder sb = new StringBuilder();
// 校验失败
if (!validRetval.isEmpty()) {
for (ConstraintViolation<Object> t : validRetval) {
sb.append(t.getPropertyPath()).append(t.getMessage()).append(",");
}
}
String checkError = sb.toString();
System.out.println(checkError);
}
@Before
public void setUp() throws NoSuchFieldException, IllegalAccessException {
Configuration<?> cfg = Validation.byDefaultProvider().configure();
cfg.messageInterpolator(new ParameterMessageInterpolator());
validator = cfg.buildValidatorFactory().getValidator();
for (Entry<String, Object> entry : Map.of("HTTP_CONTENT_SIZE_VALIDATOR", httpContentSizeValidator, "HTTP_HELPER", httpHelper).entrySet()) {
Field field = ReflectionUtils.findField(ImageCatalogValidator.class, entry.getKey());
field.setAccessible(true);
Field modifiersField = Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL);
field.set(null, entry.getValue());
}
when(httpContentSizeValidator.isValid(anyString(), any(ConstraintValidatorContext.class))).thenReturn(true);
when(statusType.getFamily()).thenReturn(Family.SUCCESSFUL);
}
/**
* 手动校验对象,很多场景下需要使用这种方式
*/
@Test
public void check_person_manually() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Person person = new Person();
person.setSex("Man22");
person.setClassId("82938390");
person.setEmail("SnailClimb");
Set<ConstraintViolation<Person>> violations = validator.validate(person);
//output:
//email 格式不正确
//name 不能为空
//sex 值不在可选范围
for (ConstraintViolation<Person> constraintViolation : violations) {
System.out.println(constraintViolation.getMessage());
}
}
@Test
public void testDataLevelFalse(){
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Map m = dataLevel.entrySet()
.stream()
.collect(Collectors.toMap(
Map.Entry::getKey,
kv -> kv.getValue() + "---------------"
));
T212Map t212Map = T212Map.createDataLevel(m);
Set<ConstraintViolation<T212Map>> e2005 = validator.validate(t212Map,Default.class,
VersionGroup.V2005.class);
assertTrue(e2005.size() > 0);
Set<ConstraintViolation<T212Map>> e2017 = validator.validate(t212Map,Default.class,
VersionGroup.V2017.class);
assertTrue(e2017.size() > 0);
}
@PostConstruct
protected void showWelcomeMessage() {
String versionString = ClassUtils.getJarVersion(InfoBean.class);
if (versionString != null) {
this.applicationMessageVersionInfo = " (v" + versionString + ")";
}
this.beanValidationVersion =
ClassUtils.getJarVersion(Validation.buildDefaultValidatorFactory().getValidator().getClass());
this.jpaVersion =
ClassUtils.getJarVersion(Persistence.createEntityManagerFactory("demoApplicationPU").getClass());
if (!ProjectStage.IntegrationTest.equals(this.projectStage)) {
this.messageContext.message().text("{msgWelcome}").add();
}
}
@BeforeClass
public static void setUpValidator() {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
validator = factory.getValidator();
builder
.withAmount(1200)
.withDescription("Some description")
.withReference("Some reference")
.withProcessorId("1PROC")
.withProviderId("1PROV")
.withCardExpiry("01/99")
.withCardType("visa")
.withFirstSixDigits("123456")
.withPaymentOutcome(new PaymentOutcome("success"));
}
@Transactional(rollbackFor = Exception.class)
public void placeOrder(String productId, int amount) throws Exception {
String orderId = UUID.randomUUID()
.toString();
Inventory inventory = inventoryRepository.findOne(productId);
inventory.setBalance(inventory.getBalance() - amount);
inventoryRepository.save(inventory);
Order order = new Order();
order.setOrderId(orderId);
order.setProductId(productId);
order.setAmount(new Long(amount));
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<Order>> violations = validator.validate(order);
if (violations.size() > 0)
throw new Exception("Invalid instance of an order.");
orderRepository.save(order);
}
@Test
public void test_WHEN_valid_GIVEN_invalid_model_THEN_error() {
// GIVEN
PersonModel person = new PersonModel( //
null, //
"", //
null);
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
// WHEN
Set<ConstraintViolation<PersonModel>> constraintViolations = validator
.validate(person);
// THEN
assertThat(constraintViolations) //
.hasSize(3) //
.haveExactly(2, notNullCondition) //
.haveExactly(1, notEmptyCondition);
}
public void consumeStringMessage(String messageString) throws IOException {
logger.info("Consuming message '{}'", messageString);
UserCreatedMessage message = objectMapper.readValue(messageString, UserCreatedMessage.class);
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<UserCreatedMessage>> violations = validator.validate(message);
if(!violations.isEmpty()){
throw new ConstraintViolationException(violations);
}
// pass message into business use case
}
private static Validator createValidator() {
try {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
return factory.getValidator();
} catch (ValidationException e) {
return null;
}
}
@Test
public void isValid() throws Exception {
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
UsagePoint usagePoint = new UsagePoint();
usagePoint.setMRID("urn:uuid:E8E75691-7F9D-49F3-8BE2-3A74EBF6BFC0");
usagePoint.setServiceCategory(new ServiceCategory(
ServiceCategory.ELECTRICITY_SERVICE));
Set<ConstraintViolation<UsagePoint>> violations = validator
.validate(usagePoint);
assertTrue(violations.isEmpty());
}
@Before
public void before() {
ValidatorFactory config = Validation.buildDefaultValidatorFactory();
validator = config.getValidator();
sourceTable.setDatabaseName("databaseName");
sourceTable.setTableName("tableName");
}
@Test
public void isValid() throws Exception {
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
ReadingQuality readingQuality = new ReadingQuality();
Set<ConstraintViolation<ReadingQuality>> violations = validator
.validate(readingQuality);
assertTrue(violations.isEmpty());
}
private Set<ConstraintViolation<Entity>> getViolations(String currency) {
Entity entity = new Entity();
entity.currency = currency;
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
return validator.validate(entity);
}
@Produces
public Validator createValidator() {
return Validation
.byDefaultProvider()
.configure()
.buildValidatorFactory()
.getValidator();
}
public static <T> void validate(T obj) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
if (constraintViolations.size() > 0) {
StringBuilder errors = new StringBuilder();
for (ConstraintViolation<T> contraintes : constraintViolations) {
errors.append(String.format("%s.%s %s\n",
contraintes.getRootBeanClass().getSimpleName(),
contraintes.getPropertyPath(),
contraintes.getMessage()));
}
throw new RuntimeException("Bean validation : " + errors);
}
}
@Test
public void isInvalid() throws Exception {
Validator validator = Validation.buildDefaultValidatorFactory()
.getValidator();
ApplicationInformation applicationInformation = new ApplicationInformation();
Set<ConstraintViolation<ApplicationInformation>> violations = validator
.validate(applicationInformation);
assertFalse(violations.isEmpty());
}
@Test
public void verifyConfigurable() throws Exception {
ObjectMapper mapper = Jackson.newObjectMapper();
// dropwizard 0.9.1 changed the validation wiring a bit..
Class<ValidatedValueUnwrapper> optValidatorClazz = (Class<ValidatedValueUnwrapper>) Class
.forName("io.dropwizard.validation.valuehandling.OptionalValidatedValueUnwrapper");
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
if (optValidatorClazz != null) {
validator = Validation.byProvider(HibernateValidator.class).configure()
.addValidatedValueHandler(optValidatorClazz.newInstance())
.buildValidatorFactory().getValidator();
}
ConfigurationFactory<CloudWatchReporterFactory> configFactory =
new ConfigurationFactory<>(CloudWatchReporterFactory.class,
validator, mapper, "dw");
CloudWatchReporterFactory f = configFactory.build(new File(Resources.getResource("cw.yml").getFile()));
assertEquals("[env=default]", f.getGlobalDimensions().toString());
assertEquals("us-east-1", f.getAwsRegion());
assertEquals("a.b", f.getNamespace());
assertEquals("XXXXX", f.getAwsSecretKey());
assertEquals("11111", f.getAwsAccessKeyId());
assertEquals("p.neustar.biz", f.getAwsClientConfiguration().getProxyHost());
assertNull(f.getAwsClientConfiguration().getProxyUsername());
}
public static Validator testValidator(String alias, Object bean) {
Supplier<EvaluationContext> spelContextFactory = () -> {
StandardEvaluationContext context = new StandardEvaluationContext();
context.setBeanResolver((ctx, beanName) -> beanName.equals(alias) ? bean : null);
context.setMethodResolvers(Collections.singletonList(new ReflectiveMethodResolver()));
return context;
};
return Validation.buildDefaultValidatorFactory()
.usingContext()
.constraintValidatorFactory(new ConstraintValidatorFactoryWrapper(VerifierMode.Strict, type -> Optional.empty(), spelContextFactory))
.messageInterpolator(new SpELMessageInterpolator(spelContextFactory))
.getValidator();
}
@Test
public void test(){
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T212MapEntry>> e1 = validator.validate(T212MapEntry.of("yyyyMMddHHmmss","20180101123010"),TypeGroup.YYYYMMDDhhmmss.class);
assertTrue(e1.isEmpty());
Set<ConstraintViolation<T212MapEntry>> e2 = validator.validate(T212MapEntry.of("yyyyMMddHHmmsszzz","20180101123010123"),DataElement.Group.QN.class);
assertTrue(e2.isEmpty());
}
/**
* Get a context of type {@code ValidationConfig} that is applicable to the supplied type.
*
* @param type the class of object for which a context is desired
* @return a context for the supplied type or {@code null} if a context for the supplied type is not available from
* this provider.
*/
@Override
public ValidationConfig getContext(Class<?> type) {
final ValidationConfig config = new ValidationConfig();
config.setMessageInterpolator(new LocaleSpecificMessageInterpolator(Validation.byDefaultProvider().configure()
.getDefaultMessageInterpolator()));
config.setParameterNameProvider(new CustomParameterNameProvider());
return config;
}
@Test
public void testCPDataLevel(){
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T212Map>> e2005 = validator.validate(cpDataLevel,Default.class,
T212MapLevelGroup.CpDataLevel.class, VersionGroup.V2005.class);
assertTrue(e2005.isEmpty());
Set<ConstraintViolation<T212Map>> e2017 = validator.validate(cpDataLevel,Default.class,
T212MapLevelGroup.CpDataLevel.class, VersionGroup.V2017.class);
assertTrue(e2017.isEmpty());
}
public static <T> void validate(T obj) {
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Set<ConstraintViolation<T>> constraintViolations = validator.validate(obj);
if (constraintViolations.size() > 0) {
StringBuilder errors = new StringBuilder();
for (ConstraintViolation<T> contraintes : constraintViolations) {
errors.append(String.format("%s.%s %s\n",
contraintes.getRootBeanClass().getSimpleName(),
contraintes.getPropertyPath(),
contraintes.getMessage()));
}
throw new RuntimeException("Bean validation : " + errors);
}
}
/**
* Create a validator factory
* @return The factory
*/
public static ValidatorFactory createValidatorFactory()
{
Configuration configuration = Validation.byDefaultProvider().configure();
Configuration<?> conf = configuration.traversableResolver(new JCATraversableResolver());
return conf.buildValidatorFactory();
}
protected Validator createValidator() {
return Validation
.byProvider(HibernateValidator.class)
.configure()
.buildValidatorFactory()
.getValidator();
}
@Before
public void setUp() throws Exception {
pagesPath = Paths.get(temporaryFolder.getRoot().getPath());
persister = spy(new DesignerConfig().pageFileBasedPersister());
loader = spy(new DesignerConfig().pageFileBasedLoader());
repository = new PageRepository(
pagesPath,
persister,
loader,
new BeanValidator(Validation.buildDefaultValidatorFactory().getValidator()),
mock(Watcher.class));
}