private void add(SAXParseException exception) { exceptions.add(new ValidationException(exception)); }
s = new ValidationException(message, causes).getMessage(); assertTrue(s.startsWith(message)); assertTrue(s.contains("\n12345")); assertTrue(s.contains("\nabcd")); s = new ValidationException(causes).getMessage(); assertTrue(s.startsWith("12345\n")); assertTrue(s.endsWith("\nabcd")); s = new ValidationException(message, causes).getMessage(); assertTrue(s.startsWith(message)); assertTrue(s.indexOf("java.lang.RuntimeException") != s.lastIndexOf("java.lang.RuntimeException")); s = new ValidationException(causes).getMessage(); assertEquals("java.lang.RuntimeException\njava.lang.RuntimeException", s); s = new ValidationException(message, causes).getMessage(); assertTrue(s.startsWith(message)); assertTrue(s.contains("\njava.lang.RuntimeException")); assertTrue(s.contains("\n67890")); s = new ValidationException(causes).getMessage(); assertTrue(s.startsWith("java.lang.RuntimeException\n")); assertTrue(s.endsWith("\n67890")); s = new ValidationException(message, causes).getMessage(); assertEquals(s, message); s = new ValidationException(causes).getMessage();
@Test public void testValidator6() throws InterruptedException, IOException { final String xml = IOUtils.toString(getClass().getResourceAsStream("/schematron/schematron-test-fail.xml"), Charset.defaultCharset()); error.expectedMessageCount(1); Exchange exchange = producerTemplate.send("direct:validator-schematron-test", ExchangePattern.InOut, exchange1 -> exchange1.getIn().setBody(xml)); assertEquals(SchematronValidationException.class, exchange.getException().getClass()); ValidationException e = (ValidationException) exchange.getException(); assertEquals(3, e.getCauses().length); error.assertIsSatisfied(2000); } }
@Test public void testValidator4() throws InterruptedException, IOException { final String xml = IOUtils.toString(getClass().getResourceAsStream("/xsd/invalidtest.xml"), Charset.defaultCharset()); error.expectedMessageCount(1); Exchange exchange = producerTemplate.send("direct:validator-xml-test", ExchangePattern.InOut, exchange1 -> exchange1.getIn().setBody(xml)); assertEquals(ValidationException.class, exchange.getException() .getClass()); ValidationException e = (ValidationException) exchange.getException(); assertEquals(5, e.getCauses().length); error.assertIsSatisfied(2000); }
@Override public void validate(Object message, Object profile) { Object result; result = validateInternal(message, profile); if (!(result instanceof Boolean)) { return; } if (!(Boolean)result) { throw new ValidationException("validation closure returned false"); } }
@Override public void validate(Source message, String schema) { List<ValidationException> exceptions = doValidate(message, schema); if (! exceptions.isEmpty()) { throw new ValidationException(exceptions); } }
public void validate(String message, String profile) { if (!message.equals(profile)) { throw new ValidationException("bullshit"); } }
public void validate(Source message, SchematronProfile profile) { SchematronOutput svrl = schematronTransmogrifier.zap(message, profile); List<ValidationException> exceptions = new ArrayList<>(); svrl.getActivePatternAndFiredRuleAndFailedAssert().stream() .filter(o -> o instanceof FailedAssert) .forEach(o -> { FailedAssert failedAssert = (FailedAssert) o; exceptions.add(new ValidationException(message(failedAssert))); }); if (!exceptions.isEmpty()) { throw new SchematronValidationException(exceptions, svrl); } }
@Override public void validate(ClinicalDocument doc, Map<Object, Object> context) { boolean isValid = CDAUtil.validate(doc, retrieveValidationHandler(context)); if (! isValid) { throw new ValidationException("Clinical Document not valid!"); } }
/** * @param message * the message to be validated * @param schemaResource * the XML schema to validate against * @return an array of validation exceptions */ protected List<ValidationException> doValidate(Source message, String schemaResource) { try { LOG.debug("Validating XML message"); Schema schema = resource(schemaResource); javax.xml.validation.Validator validator = schema.newValidator(); CollectingErrorHandler errorHandler = new CollectingErrorHandler(); validator.setErrorHandler(errorHandler); validator.validate(message); List<ValidationException> exceptions = errorHandler.getExceptions(); if (! exceptions.isEmpty()) { LOG.debug("Message validation found {} problems", exceptions.size()); } else { LOG.debug("Message validation successful"); } return exceptions; } catch (Exception e) { return Collections.singletonList(new ValidationException( "Unexpected validation failure because " + e.getMessage(), e)); } }
public void validate(String message, CombinedXmlValidationProfile profile) throws ValidationException { requireNonNull(profile, "validation profile must be not null"); // check whether the root element name is valid String rootElementName = rootElementName(requireNonNull(message, "message must be not null")); if (! profile.isValidRootElement(rootElementName)) { throw new ValidationException("Invalid root element '" + rootElementName + "'"); } // XSD validation String xsdPath = profile.getXsdPath(rootElementName); if (xsdPath != null) { XSD_VALIDATOR.validate(source(message), xsdPath); } // Schematron validation String schematronPath = profile.getSchematronPath(rootElementName); if (schematronPath != null) { SchematronProfile schematronProfile = new SchematronProfile( schematronPath, profile.getCustomSchematronParameters(rootElementName)); SCHEMATRON_VALIDATOR.validate(source(message), schematronProfile); } } }
@Override public void audit(AuditContext auditContext, AuditMessage... auditMessages) { for (AuditMessage message : auditMessages) { AuditEvent auditEventResource = translator.translate(message); log.debug(fhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(auditEventResource)); if (needValidation) { FhirValidator validator = fhirContext.newValidator(); // FhirInstanceValidator instanceValidator = new FhirInstanceValidator(); // validator.registerValidatorModule(instanceValidator); ValidationResult result = validator.validateWithResult(auditEventResource); if (!result.isSuccessful()) { StringBuilder sb = new StringBuilder("Validation of FHIR AuditEvent failed:"); for (SingleValidationMessage error : result.getMessages()) { sb.append('\n').append(error.toString()); } throw new ValidationException(sb.toString()); } } messages.add(auditEventResource); } }