private static String getFirstString(List<RaveError> errors) { return errors.isEmpty() ? "" : errors.get(0).toString(); } }
/** * @return Returns the list of error messages as a single string message. */ @Override public final String getMessage() { StringBuilder builder = new StringBuilder(); ListIterator<RaveError> iterator = errors.listIterator(errors.size()); String newline = "\n"; while (iterator.hasPrevious()) { builder.append(iterator.previous().toString()).append(newline); } return builder.toString(); }
@Test public void checkString_whenArrayIsInValid_shouldProduceError() { String[] strings = new String[] {"Valid1", "Invalid2", "Valid3"}; BaseValidator.ValidationContext context = BaseValidator.getValidationContext(String.class); List<RaveError> errors = BaseValidator.checkStringDef(true, context, strings, "Valid1", "Valid2", "Valid3"); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).contains(RaveErrorStrings.STRING_DEF_ERROR); errors = BaseValidator.checkStringDef(false, context, strings, "Valid1", "Valid2", "Valid3"); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).contains(RaveErrorStrings.STRING_DEF_ERROR); }
@Test public void checkNullableCollection_whenCollectionIsNullButShouldntBe_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(Collection.class); List<RaveError> errors = BaseValidator.checkNullable((Collection<Object>) null, false, context); assertThat(errors).isNotNull(); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void exceptionMessage_whenObjectNotSupported_shouldThrowObjectNotSupportedError() throws RaveException { try { Rave.getInstance().validate(new Object()); } catch (UnsupportedObjectException e) { RaveError er = new RaveError(Object.class, "", RaveErrorStrings.CLASS_NOT_SUPPORTED_ERROR); assertThat(er.toString() + "\n").isEqualTo(e.getMessage()); Iterator<RaveError> iter = e.getRaveErrorIterator(); assertThat(iter.hasNext()).isTrue(); RaveError error = iter.next(); assertThat(er.toString()).isEqualTo(error.toString()); assertThat(iter.hasNext()).isFalse(); } }
@Test public void checkNullableMap_whenMapHasInvalidObjectAsKey_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(SingleMethodSampleModel.class); context.setValidatedItemName("getNotNullField()"); Map<SingleMethodSampleModel, Object> map = new HashMap<>(); map.put(new SingleMethodSampleModel(null, SingleMethodSampleModel.MATCHED1), new Object()); List<RaveError> errors = BaseValidator.checkNullable(map, false, context); assertThat(errors).isNotNull(); assertThat(errors).hasSize(1); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkString_whenStringIsNull_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(String.class); List<RaveError> errors = BaseValidator.checkStringDef(false, context, (String) null, "Valid1", "Valid2", "Valid3"); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString().contains(RaveErrorStrings.NON_NULL_ERROR)).isTrue(); }
@Test public void checkNullableArray_whenCollectionIsNullButShouldntBe_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(Integer.class); List<RaveError> errors = BaseValidator.checkNullable((Integer[]) null, false, context); assertThat(errors).isNotNull(); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkNullableMap_whenMapIsNullButShouldntBe_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(Map.class); List<RaveError> errors = BaseValidator.checkNullable((Map<Object, Object>) null, false, context); assertThat(errors).isNotNull(); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkNullableMap_whenMapHasInvalidObjectAsValue_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(SingleMethodSampleModel.class); context.setValidatedItemName("getNotNullField()"); Map<Object, SingleMethodSampleModel> map = new HashMap<>(); map.put(new Object(), new SingleMethodSampleModel(null, SingleMethodSampleModel.MATCHED1)); List<RaveError> errors = BaseValidator.checkNullable(map, false, context); assertThat(errors).isNotNull(); assertThat(errors).hasSize(1); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkNullableCollection_whenCollectionHasInvalidObject_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(SingleMethodSampleModel.class); context.setValidatedItemName("getNotNullField()"); List<SingleMethodSampleModel> list = new LinkedList<>(); list.add(new SingleMethodSampleModel(null, SingleMethodSampleModel.MATCHED1)); List<RaveError> errors = BaseValidator.checkNullable(list, false, context); assertThat(errors).isNotNull(); assertThat(errors).hasSize(1); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkMustBeFalse_whenInvalidBoolean_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(Object.class); context.setValidatedItemName("someMethodName"); List<RaveError> errors = BaseValidator.mustBeFalse(true, context); assertThat(errors).isNotNull(); RaveError expectedError = new RaveError(context, RaveErrorStrings.MUST_BE_FALSE_ERROR); assertThat(errors).hasSize(1); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }
@Test public void checkNullableArray_whenCollectionHasInvalidObject_shouldProduceErrors() { BaseValidator.ValidationContext context = BaseValidator.getValidationContext(SingleMethodSampleModel.class); context.setValidatedItemName("getNotNullField()"); SingleMethodSampleModel[] array = new SingleMethodSampleModel[1]; array[0] = new SingleMethodSampleModel(null, SingleMethodSampleModel.MATCHED1); List<RaveError> errors = BaseValidator.checkNullable(array, false, context); assertThat(errors).isNotNull(); assertThat(errors).hasSize(1); RaveError expectedError = new RaveError(context, RaveErrorStrings.NON_NULL_ERROR); assertThat(errors.get(0).toString()).isEqualTo(expectedError.toString()); }