@Override public List<ObjectError> getAllErrors() { return escapeObjectErrors(this.source.getAllErrors()); }
@Override public void addAllErrors(Errors errors) { if (!errors.getObjectName().equals(getObjectName())) { throw new IllegalArgumentException("Errors object needs to have same object name"); } this.errors.addAll(errors.getAllErrors()); }
private String getErrorMessages(Errors errors) { List<String> messages = new ArrayList<>(); for (ObjectError error : errors.getAllErrors()) { messages.add(messageSource.getMessage(error, Locale.getDefault())); } return String.join("\r\n", messages); }
@Override public List<ObjectError> getAllErrors() { return escapeObjectErrors(this.source.getAllErrors()); }
@Override public void addAllErrors(Errors errors) { if (!errors.getObjectName().equals(getObjectName())) { throw new IllegalArgumentException("Errors object needs to have same object name"); } this.errors.addAll(errors.getAllErrors()); }
public void validate() { allErrors = new HashMap<String,Errors>(); for(Entry<String, HasValidator> entry : getBeansOfType(HasValidator.class).entrySet()) { String name = entry.getKey(); HasValidator hv = entry.getValue(); Validator v = hv.getValidator(); Errors errors = new BeanPropertyBindingResult(hv,name); v.validate(hv, errors); if(errors.hasErrors()) { allErrors.put(name,errors); } } for(String name : allErrors.keySet()) { for(Object obj : allErrors.get(name).getAllErrors()) { LOGGER.fine("validation error for '"+name+"': "+obj); } } }
/** * Does the assembled ApplicationContext self-validate? Any failures * are reported as WARNING log events in the job log. * * TODO: make these severe? */ public synchronized void validateConfiguration() { instantiateContainer(); if(ac==null) { // fatal errors already encountered and reported return; } ac.validate(); HashMap<String,Errors> allErrors = ac.getAllErrors(); for(String name : allErrors.keySet()) { for(Object err : allErrors.get(name).getAllErrors()) { LOGGER.log(Level.WARNING,err.toString()); } } }
/** * Print the ModelAndView. */ protected void printModelAndView(@Nullable ModelAndView mav) throws Exception { this.printer.printValue("View name", (mav != null) ? mav.getViewName() : null); this.printer.printValue("View", (mav != null) ? mav.getView() : null); if (mav == null || mav.getModel().size() == 0) { this.printer.printValue("Model", null); } else { for (String name : mav.getModel().keySet()) { if (!name.startsWith(BindingResult.MODEL_KEY_PREFIX)) { Object value = mav.getModel().get(name); this.printer.printValue("Attribute", name); this.printer.printValue("value", value); Errors errors = (Errors) mav.getModel().get(BindingResult.MODEL_KEY_PREFIX + name); if (errors != null) { this.printer.printValue("errors", errors.getAllErrors()); } } } } }
this.objectErrors = this.errors.getAllErrors();
this.objectErrors = this.errors.getAllErrors();
@Test public void testNotAnOrder() { String notAnOrder = "order"; Errors errors = new BeanPropertyBindingResult(notAnOrder, "validOrder"); orderValidator.validate(notAnOrder, errors); assertEquals(1, errors.getAllErrors().size()); assertEquals("Incorrect type", errors.getAllErrors().get(0).getCode()); errors = new BeanPropertyBindingResult(notAnOrder, "validOrder"); orderValidator.validate(null, errors); assertEquals(0, errors.getAllErrors().size()); }
this.objectErrors = this.errors.getAllErrors();
ObjectError globalErrorInList = errors.getGlobalErrors().get(0); assertTrue("Same global error in list", defaultMessage.equals(globalErrorInList.getDefaultMessage())); ObjectError globalErrorInAllList = errors.getAllErrors().get(3); assertTrue("Same global error in list", defaultMessage.equals(globalErrorInAllList.getDefaultMessage()));
assertEquals(3, errors.getAllErrors().size()); assertEquals("error.order.id", errors.getFieldError("orderId").getCode()); assertEquals("error.order.date.future", errors.getFieldError("orderDate").getCode()); assertEquals(2, errors.getAllErrors().size()); assertEquals("error.order.id", errors.getFieldError("orderId").getCode()); assertEquals("error.order.lines.badcount", errors.getFieldError("totalLines").getCode()); assertEquals(0, errors.getAllErrors().size());
orderValidator.validateLineItems(lineItems, errors); assertEquals(7, errors.getAllErrors().size()); assertEquals("error.lineitems.id", errors.getFieldErrors("lineItems").get(0).getCode()); assertEquals("error.lineitems.price", errors.getFieldErrors("lineItems").get(1).getCode());
@Test public void testValidPayment() { Order order = new Order(); BillingInfo info = new BillingInfo(); info.setPaymentId("INVALID"); info.setPaymentDesc("INVALID"); order.setBilling(info); Errors errors = new BeanPropertyBindingResult(order, "validOrder"); orderValidator.validatePayment(info, errors); assertEquals(2, errors.getAllErrors().size()); assertEquals("error.billing.type", errors.getFieldError("billing.paymentId").getCode()); assertEquals("error.billing.desc", errors.getFieldError("billing.paymentDesc").getCode()); info = new BillingInfo(); info.setPaymentId("VISA"); info.setPaymentDesc("ADFI-1234567890"); order.setBilling(info); errors = new BeanPropertyBindingResult(order, "validOrder"); orderValidator.validatePayment(info, errors); assertEquals(0, errors.getAllErrors().size()); }
@Test public void testValidShipping() { Order order = new Order(); ShippingInfo info = new ShippingInfo(); info.setShipperId("INVALID"); info.setShippingTypeId("INVALID"); order.setShipping(info); Errors errors = new BeanPropertyBindingResult(order, "validOrder"); orderValidator.validateShipping(info, errors); assertEquals(2, errors.getAllErrors().size()); assertEquals("error.shipping.shipper", errors.getFieldError("shipping.shipperId").getCode()); assertEquals("error.shipping.type", errors.getFieldError("shipping.shippingTypeId").getCode()); info = new ShippingInfo(); info.setShipperId("FEDX"); info.setShippingTypeId("EXP"); info.setShippingInfo("12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"); order.setShipping(info); errors = new BeanPropertyBindingResult(order, "validOrder"); orderValidator.validateShipping(info, errors); assertEquals(1, errors.getAllErrors().size()); assertEquals("error.shipping.shippinginfo.length", errors.getFieldError("shipping.shippingInfo").getCode()); info = new ShippingInfo(); info.setShipperId("FEDX"); info.setShippingTypeId("EXP"); info.setShippingInfo("Info"); order.setShipping(info); errors = new BeanPropertyBindingResult(order, "validOrder"); orderValidator.validateShipping(info, errors); assertEquals(0, errors.getAllErrors().size()); }
orderValidator.validateCustomer(customer, errors); assertEquals(2, errors.getAllErrors().size()); assertEquals("error.customer.registration", errors.getFieldError("customer.registered").getCode()); assertEquals("error.customer.companyname", errors.getFieldError("customer.companyName").getCode()); orderValidator.validateCustomer(customer, errors); assertEquals(3, errors.getAllErrors().size()); assertEquals("error.customer.firstname", errors.getFieldError("customer.firstName").getCode()); assertEquals("error.customer.lastname", errors.getFieldError("customer.lastName").getCode()); orderValidator.validateCustomer(customer, errors); assertEquals(3, errors.getAllErrors().size()); assertEquals("error.customer.firstname", errors.getFieldError("customer.firstName").getCode()); assertEquals("error.customer.lastname", errors.getFieldError("customer.lastName").getCode()); orderValidator.validateCustomer(customer, errors); assertEquals(0, errors.getAllErrors().size()); orderValidator.validateCustomer(customer, errors); assertEquals(0, errors.getAllErrors().size());
orderValidator.validateAddress(null, errors, "billingAddress"); assertEquals(0, errors.getAllErrors().size()); assertEquals(4, errors.getAllErrors().size()); assertEquals("error.baddress.addrline1.length", errors.getFieldError("billingAddress.addrLine1").getCode()); assertEquals("error.baddress.city.length", errors.getFieldError("billingAddress.city").getCode()); orderValidator.validateAddress(address, errors, "billingAddress"); assertEquals(8, errors.getAllErrors().size()); assertEquals("error.baddress.addresse.length", errors.getFieldError("billingAddress.addressee").getCode()); assertEquals("error.baddress.addrline1.length", errors.getFieldError("billingAddress.addrLine1").getCode()); orderValidator.validateAddress(address, errors, "billingAddress"); assertEquals(0, errors.getAllErrors().size());
/** * @see OrderValidator#validate(Object, org.springframework.validation.Errors) */ @Test public void validate_shouldFailValidationIfOrderIsNull() { Errors errors = new BindException(new Order(), "order"); new OrderValidator().validate(null, errors); Assert.assertTrue(errors.hasErrors()); Assert.assertEquals("error.general", errors.getAllErrors().get(0).getCode()); }