/** * Validate an object. * * @param object the object to be validated. * @throws RaveException if validation fails. */ public void validate(Object object) throws RaveException { Class<?> clazz = object.getClass(); Validated validated = clazz.getAnnotation(Validated.class); BaseValidator validator; synchronized (this) { if (validated == null && !unannotatedModelValidator.hasSeen(clazz)) { unannotatedModelValidator.processNonAnnotatedClasses(clazz); } validator = classValidatorMap.get(clazz); if (validator == null) { validator = getValidatorInstance(clazz); } if (validator == null) { throw new UnsupportedObjectException(Collections.singletonList( new RaveError(clazz, "", RaveErrorStrings.CLASS_NOT_SUPPORTED_ERROR))); } } validator.validate(object); }
@Test(expected = IllegalArgumentException.class) public void unAnnotateValidatorHandlerProcessAnnotation_whenUnSupportedClass_shouldThrowException() throws RaveException { Rave.UnAnnotatedModelValidator handler = new Rave.UnAnnotatedModelValidator(1); handler.processNonAnnotatedClasses(Object.class); handler.processNonAnnotatedClasses(String.class); handler.validateAs(new Object(), Object.class); }
@Test(expected = UnsupportedObjectException.class) public void unAnnotateValidatorHandlerProcessAnnotation_whenUnSupportedClass_shouldThrowUnsupportedObjectException() throws RaveException { Rave.UnAnnotatedModelValidator handler = new Rave.UnAnnotatedModelValidator(1); handler.processNonAnnotatedClasses(Object.class); handler.processNonAnnotatedClasses(String.class); handler.validateAs("", String.class); }
@Test(expected = IllegalArgumentException.class) public void processNonAnnotatedClass_whenModelIsAnnotated_shouldThrowException() throws RaveException { Rave.UnAnnotatedModelValidator handler = new Rave.UnAnnotatedModelValidator(1); handler.processNonAnnotatedClasses(SingleMethodSampleModel.class); }