@Test // SPR-15839 public void testMapEntryConstraint() { Map<String, String> property = new HashMap<>(); property.put(null, null); BeanWithMapEntryConstraint bean = new BeanWithMapEntryConstraint(); bean.setProperty(property); BeanPropertyBindingResult errors = new BeanPropertyBindingResult(bean, "bean"); validatorAdapter.validate(bean, errors); assertTrue(errors.hasFieldErrors("property[]")); assertNull(errors.getFieldValue("property[]")); }
assertEquals("arg", (errors.getGlobalErrors().get(1)).getArguments()[0]); assertTrue(errors.hasFieldErrors()); assertEquals(4, errors.getFieldErrorCount()); assertEquals("validation.TOO_YOUNG", errors.getFieldError().getCode()); assertEquals("spouse.age", (errors.getFieldErrors().get(3)).getField()); assertTrue(errors.hasFieldErrors("age")); assertEquals(2, errors.getFieldErrorCount("age")); assertEquals("validation.TOO_YOUNG", errors.getFieldError("age").getCode()); assertEquals("validation.AGE_NOT_ODD", (errors.getFieldErrors("age").get(1)).getCode()); assertTrue(errors.hasFieldErrors("name")); assertEquals(1, errors.getFieldErrorCount("name")); assertEquals("validation.NOT_ROD", errors.getFieldError("name").getCode()); assertEquals(null, (errors.getFieldErrors("name").get(0)).getRejectedValue()); assertTrue(errors.hasFieldErrors("spouse.age")); assertEquals(1, errors.getFieldErrorCount("spouse.age")); assertEquals("validation.TOO_YOUNG", errors.getFieldError("spouse.age").getCode());
@Override public Widget execute() { Widget widget = null; // TODO - improve info sent back to marketplace, rather then just writing to the console try { widget = marketplaceService.resolveWidgetMetadata(url, providerType); if(widget == null){ return null; } BeanPropertyBindingResult results = new BeanPropertyBindingResult(widget, "widget"); widgetValidator.validate(widget, results); if (results.hasErrors()) { if(results.hasFieldErrors("url") && results.getFieldError("url").toString().contains("widget.url.exists")){ return widgetService.getWidgetByUrl(widget.getUrl()); } return null; } return marketplaceService.addWidget(widget); } catch (Exception e) { logger.error(e.getMessage()); return null; } } }.getResult();