public void testPropertyValidatorsAsBeanValidationAnnotation() throws Exception { Product p = new Product(); p.setNumber(66); p.setDescription("MOTO"); p.setFamilyNumber(1); p.setSubfamilyNumber(1); p.setWarehouseKey(new Warehouse()); p.setUnitPrice(new BigDecimal("900")); XPersistence.getManager().persist(p); try { XPersistence.commit(); } catch (RollbackException ex) { if (ex.getCause() instanceof ConstraintViolationException) { ConstraintViolationException cex = (ConstraintViolationException) ex.getCause(); assertEquals("1 constraint violation expected", 1, cex.getConstraintViolations().size()); ConstraintViolation v = cex.getConstraintViolations().iterator().next(); assertEquals("Property", "description", v.getPropertyPath().toString()); assertEquals("Message text", "", v.getMessage()); return; } } fail("A constraint violation exception should be thrown"); }
public void testEntityValidatorsAsHibernateAnnotation() throws Exception { Product p = new Product(); p.setNumber(66); p.setDescription("BUENO, BONITO, BARATO"); // It's cheap ('BARATO') thus... p.setFamilyNumber(1); p.setSubfamilyNumber(1); p.setWarehouseKey(new Warehouse()); p.setUnitPrice(new BigDecimal("900")); // ... it cannot cost 900 (max 100) XPersistence.getManager().persist(p); try { XPersistence.commit(); } catch (RollbackException ex) { if (ex.getCause() instanceof ConstraintViolationException) { ConstraintViolationException cex = (ConstraintViolationException) ex.getCause(); assertEquals("1 constraint violation expected", 1, cex.getConstraintViolations().size()); ConstraintViolation v = cex.getConstraintViolations().iterator().next(); assertEquals("Bean", "Product", v.getRootBean().getClass().getSimpleName()); assertEquals("Message text", "", v.getMessage()); return; } } fail("A constraint violation exception should be thrown"); }