ValueSetValidator implements Validator { @Override public void validateValue(Property property, Object value) throws ValidationException { if (value != null || propertyDescriptor.isNotNull()) { if (!propertyDescriptor.getValueSet().contains(value)) { throw new ValidationException(MessageFormat.format("Value for ''{0}'' is invalid: ''{1}''", property.getDescriptor().getDisplayName(), value)); } } } ValueSetValidator(PropertyDescriptor propertyDescriptor); @Override void validateValue(Property property, Object value);  }
@Test public void testGoodNull() throws Exception { final PropertyDescriptor descriptor = createPropertyDescriptor(); descriptor.setNotNull(false); new ValueSetValidator(descriptor).validateValue(createProperty(descriptor), null); }
@Test(expected = ValidationException.class) public void testBadNull() throws Exception { final PropertyDescriptor descriptor = createPropertyDescriptor(); descriptor.setNotNull(true); new ValueSetValidator(descriptor).validateValue(createProperty(descriptor), null); }
@Test public void testGoodValues() throws Exception { final PropertyDescriptor descriptor = createPropertyDescriptor(); descriptor.setNotNull(false); final ValueSetValidator validator = new ValueSetValidator(descriptor); validator.validateValue(createProperty(descriptor), "a"); validator.validateValue(createProperty(descriptor), "b"); validator.validateValue(createProperty(descriptor), "c"); }
@Test(expected = ValidationException.class) public void testBadValue() throws Exception { final PropertyDescriptor descriptor = createPropertyDescriptor(); descriptor.setNotNull(false); final ValueSetValidator validator = new ValueSetValidator(descriptor); validator.validateValue(createProperty(descriptor), "d"); }