use of com.adaptris.transform.validate.ValidationStage in project interlok by adaptris.
the class XmlRuleValidatorTest method testListContentValidation_DataInList.
@Test
public void testListContentValidation_DataInList() throws Exception {
XmlRuleValidator validator = new XmlRuleValidator();
validator.setXmlDocumentFactoryConfig(DocumentBuilderFactoryBuilder.newInstance());
validator.setValidationStages(Arrays.asList(new ValidationStage[] { new ValidationStage(XPATH_ITERATION_CHILDREN_OF_ZEUS, XPATH_CHILDREN_OF_HERA, new SimpleListContentValidation(CHILDREN_OF_HERA)) }));
AdaptrisMessage msg = new DefaultMessageFactory().newMessage(XML_FAMILY_TREE);
XmlValidationService service = new XmlValidationService(validator);
try {
ExampleServiceCase.execute(service, msg);
} catch (ServiceException e) {
fail("RuleValidationService failure when expecting success");
}
}
use of com.adaptris.transform.validate.ValidationStage in project interlok by adaptris.
the class XmlRuleValidatorTest method testIsNullContentValidation_DataIsNull.
@Test
public void testIsNullContentValidation_DataIsNull() throws Exception {
XmlRuleValidator validator = new XmlRuleValidator();
// Hades had no children; poor god.
ValidationStage vs = new ValidationStage(XPATH_ITERATION_CHILDREN_OF_HADES, XPATH_CHILD_NAME, new IsNullContentValidation());
validator.addValidationStage(vs);
AdaptrisMessage msg = new DefaultMessageFactory().newMessage(XML_FAMILY_TREE);
XmlValidationService service = new XmlValidationService(validator);
try {
ExampleServiceCase.execute(service, msg);
} catch (ServiceException e) {
fail("RuleValidationService failure when expecting success");
}
}
use of com.adaptris.transform.validate.ValidationStage in project interlok by adaptris.
the class XmlRuleValidatorTest method testListContentValidation_WithNamespace.
@Test
public void testListContentValidation_WithNamespace() throws Exception {
XmlRuleValidator validator = new XmlRuleValidator();
validator.setNamespaceContext(createNamespaceHolder());
ValidationStage vs = new ValidationStage(XPATH_NS_ITERATION_TITAN_NAMES, XPATH_NS_TITAN_NAME, new SimpleListContentValidation(THE_TWELVE_TITANS), new NotNullContentValidation());
validator.addValidationStage(vs);
AdaptrisMessage msg = new DefaultMessageFactory().newMessage(XML_WITH_NAMESEPACE);
XmlValidationService service = new XmlValidationService(validator);
try {
ExampleServiceCase.execute(service, msg);
} catch (ServiceException e) {
fail("RuleValidationService failure when expecting success");
}
}
use of com.adaptris.transform.validate.ValidationStage in project interlok by adaptris.
the class XmlRuleValidatorTest method testListContentValidation_WithNamespaceDataNotInList.
@Test
public void testListContentValidation_WithNamespaceDataNotInList() throws Exception {
XmlRuleValidator validator = new XmlRuleValidator();
validator.setNamespaceContext(createNamespaceHolder());
ValidationStage vs = new ValidationStage(XPATH_NS_ITERATION_OLYMPIAN_NAMES, XPATH_NS_OLYMPIAN_NAME, new SimpleListContentValidation(THE_TWELVE_TITANS), new NotNullContentValidation());
validator.addValidationStage(vs);
AdaptrisMessage msg = new DefaultMessageFactory().newMessage(XML_WITH_NAMESEPACE);
XmlValidationService service = new XmlValidationService(validator);
try {
ExampleServiceCase.execute(service, msg);
fail("RuleValidationService success when expecting exception");
} catch (ServiceException e) {
// expected
;
}
}
use of com.adaptris.transform.validate.ValidationStage in project interlok by adaptris.
the class XmlRuleValidator method validate.
@Override
public void validate(AdaptrisMessage msg) throws CoreException {
try {
NamespaceContext namespaceCtx = SimpleNamespaceContext.create(getNamespaceContext(), msg);
DocumentBuilderFactoryBuilder builder = documentFactoryBuilder(namespaceCtx);
Document doc = createDocument(msg, builder);
XPath xp = XPath.newXPathInstance(builder, namespaceCtx);
for (int stageIndex = 0; stageIndex < validationStages.size(); stageIndex++) {
ValidationStage v = validationStages.get(stageIndex);
NodeList n = xp.selectNodeList(doc, v.getIterationXpath());
validate(n, v.getIterationXpath(), v.failOnIteratorFailure());
for (int i = 0; i < n.getLength(); i++) {
Node node = n.item(i);
String contents = xp.selectSingleTextItem(node, v.getElementXpath());
for (ContentValidation cv : v.getRules()) {
if (!cv.isValid(contents)) {
throw new ServiceException(ERR_MSG.replaceAll(I_COUNT, "" + i).replaceAll(I_XP, Matcher.quoteReplacement(v.getIterationXpath())).replaceAll(E_XP, Matcher.quoteReplacement(v.getElementXpath())).replaceAll(CONTENTS, Matcher.quoteReplacement(contents)).replaceAll(VALIDATION_MSG, Matcher.quoteReplacement(cv.getMessage())));
}
}
}
}
} catch (Exception e) {
ExceptionHelper.rethrowCoreException(e);
}
}
Aggregations