@Test public void testDiagnoseInconsistentContentException(@Mocked final Constraints constraints) throws Exception { prepareTest(new InconsistentContentException("Failure",constraints)); assertThat(sut.getDiagnosis().statusCode(),equalTo(Status.CONFLICT.getStatusCode())); assertThat(sut.getDiagnosis().diagnostic(),equalTo("Specified values for application-managed properties are not consistent with the actual resource state: Failure")); }
private void validate(DataSet dataSet, DataSet metadata) throws InvalidContentException { ManagedIndividualId id = individualId(); Individual<?,?> individual=metadata.individualOfId(id); ValidatorBuilder builder=Validator.builder(); configureValidationConstraints(builder,individual,metadata); Validator validator=builder.build(); ValidationReport report = validator.validate(dataSet); if(!report.isValid()) { // TODO: Add validation constraints Constraints constraints = Constraints.constraints(); throw new InconsistentContentException("Protocol/framework managed metadata validation failed: "+report.validationFailures(),constraints); } }
protected void enforceConsistency(ResourceSnapshot resource, DataSet content, DataSet dataSet) throws InconsistentContentException { ManagedIndividualId id = ManagedIndividualId.createId(resource.name(),PersonHandler.ID); ManagedIndividual stateIndividual = dataSet. individual( id, ManagedIndividual.class); Property stateProperty= stateIndividual.property(PersonHandler.READ_ONLY_PROPERTY); ValidationConstraint<Property> constraint=null; if(stateProperty!=null) { constraint=ValidationConstraintFactory.readOnlyProperty(stateProperty); } else { constraint=ValidationConstraintFactory.readOnlyProperty(id,PersonHandler.READ_ONLY_PROPERTY); } Validator helper = Validator. builder(). withPropertyConstraint(constraint). build(); ValidationReport report = helper.validate(content); if(!report.isValid()) { InconsistentContentException error = new InconsistentContentException("Validation failed: "+report.validationFailures(), Constraints.constraints()); logError(resource,error,"Something went wrong when validating %n%s",content); throw error; } }