use of nl.nn.adapterframework.processors.CorePipeProcessor in project iaf by ibissource.
the class PipeLineTest method testDirectWrapperPipeSuccessForward.
// Should add tests to assertThat(configuration.getConfigWarning(0), StringEndsWith.endsWith("] has no pipe forwards defined"));
@Test
public void testDirectWrapperPipeSuccessForward() throws ConfigurationException, PipeRunException {
TestConfiguration configuration = new TestConfiguration();
PipeLine pipeline = configuration.createBean(PipeLine.class);
PipeForward pf = configuration.createBean(PipeForward.class);
pf.setName("success");
pf.setPath("nextPipe");
PipeForward toExit = configuration.createBean(PipeForward.class);
toExit.setName("success");
toExit.setPath("EXIT");
DirectWrapperPipe pipe = configuration.createBean(DirectWrapperPipe.class);
pipe.setName("DirectWrapperPipe");
pipe.registerForward(pf);
pipeline.addPipe(pipe);
EchoPipe echoPipe = configuration.createBean(EchoPipe.class);
echoPipe.setName("nextPipe");
echoPipe.setPipeLine(pipeline);
echoPipe.registerForward(toExit);
pipeline.addPipe(echoPipe);
PipeLineExit exit = configuration.createBean(PipeLineExit.class);
exit.setPath("exit");
exit.setState(ExitState.SUCCESS);
pipeline.registerPipeLineExit(exit);
pipeline.setOwner(pipe);
pipeline.configure();
CorePipeProcessor cpp = configuration.createBean(CorePipeProcessor.class);
PipeLineSession ps = configuration.createBean(PipeLineSession.class);
PipeRunResult pipeRunResult = cpp.processPipe(pipeline, pipe, new Message("<dummy/>"), ps);
PipeForward pipeForward = pipeRunResult.getPipeForward();
IForwardTarget target = pipeline.resolveForward(pipe, pipeForward);
assertNotNull(target);
configuration.close();
configuration = null;
}
use of nl.nn.adapterframework.processors.CorePipeProcessor in project iaf by ibissource.
the class ParameterTest method testPutInSessionPipeWithDomdocParamsUsedMoreThanOnce.
@Test
public // Test for #2256 PutParametersInSession with xpathExpression with type=domdoc results in "Content is not allowed in prolog"
void testPutInSessionPipeWithDomdocParamsUsedMoreThanOnce() throws Exception {
try (TestConfiguration configuration = new TestConfiguration()) {
PipeLine pipeline = configuration.createBean(PipeLine.class);
String firstPipe = "PutInSession under test";
String secondPipe = "PutInSession next pipe";
String testMessage = "<Test>\n" + " <Child><name>X</name></Child>\n" + " <Child><name>Y</name></Child>\n" + " <Child><name>Z</name></Child>\n" + "</Test>";
String testMessageChild1 = "<Child><name>X</name></Child>";
PutInSession pipe = configuration.createBean(PutInSession.class);
pipe.setName(firstPipe);
pipe.setPipeLine(pipeline);
Parameter p = new Parameter();
p.setName("xmlMessageChild");
p.setXpathExpression("Test/Child[1]");
p.setType(ParameterType.DOMDOC);
pipe.addParameter(p);
pipeline.addPipe(pipe);
PutInSession pipe2 = configuration.createBean(PutInSession.class);
pipe2.setName(secondPipe);
pipe2.setPipeLine(pipeline);
Parameter p2 = new Parameter();
p2.setName("xmlMessageChild2");
p2.setSessionKey("xmlMessageChild");
p2.setXpathExpression("Child/name/text()");
pipe2.addParameter(p2);
pipeline.addPipe(pipe2);
PipeLineExit exit = new PipeLineExit();
exit.setPath("exit");
exit.setState(ExitState.SUCCESS);
pipeline.registerPipeLineExit(exit);
pipeline.configure();
CorePipeLineProcessor cpp = configuration.createBean(CorePipeLineProcessor.class);
CorePipeProcessor pipeProcessor = configuration.createBean(CorePipeProcessor.class);
cpp.setPipeProcessor(pipeProcessor);
PipeLineSession session = configuration.createBean(PipeLineSession.class);
pipeline.setOwner(pipe);
PipeLineResult pipeRunResult = cpp.processPipeLine(pipeline, "messageId", new Message(testMessage), session, firstPipe);
assertEquals(ExitState.SUCCESS, pipeRunResult.getState());
assertEquals(testMessage, pipeRunResult.getResult().asString());
MatchUtils.assertXmlEquals(testMessageChild1, session.getMessage("xmlMessageChild").asString());
assertEquals("X", session.getMessage("xmlMessageChild2").asString());
}
}
use of nl.nn.adapterframework.processors.CorePipeProcessor in project iaf by ibissource.
the class MessageSendingPipeTest method testInputValidated.
@Test
public void testInputValidated() throws Exception {
Json2XmlValidator validator = new Json2XmlValidator();
validator.setNoNamespaceSchemaLocation("/Align/Abc/abc.xsd");
validator.setOutputFormat(DocumentFormat.JSON);
validator.setThrowException(true);
pipe.setInputValidator(validator);
pipe.setPipeProcessor(new CorePipeProcessor());
configureAndStartPipe();
Message input = TestFileUtils.getTestFileMessage("/Align/Abc/abc.xml");
String expected = "{ \"input\": \"" + TestFileUtils.getTestFile("/Align/Abc/abc-compact.json") + "\"}";
PipeRunResult prr = doPipe(input);
assertEquals("success", prr.getPipeForward().getName());
assertEquals(expected, prr.getResult().asString());
}
use of nl.nn.adapterframework.processors.CorePipeProcessor in project iaf by ibissource.
the class MessageSendingPipeTest method testOutputValidated.
@Test
public void testOutputValidated() throws Exception {
Json2XmlValidator validator = new Json2XmlValidator();
validator.setNoNamespaceSchemaLocation("/Align/Abc/abc.xsd");
validator.setRoot("a");
validator.setOutputFormat(DocumentFormat.XML);
validator.setThrowException(true);
pipe.setOutputValidator(validator);
pipe.setSender(new EchoSender());
pipe.setPipeProcessor(new CorePipeProcessor());
configureAndStartPipe();
Message input = TestFileUtils.getTestFileMessage("/Align/Abc/abc-compact.json");
String expected = TestFileUtils.getTestFile("/Align/Abc/abc.xml");
PipeRunResult prr = doPipe(input);
assertEquals("success", prr.getPipeForward().getName());
assertXmlEquals("response converted", expected, prr.getResult().asString(), true);
}
use of nl.nn.adapterframework.processors.CorePipeProcessor in project iaf by ibissource.
the class MessageSendingPipeTest method testOutputWrapped.
@Test
public void testOutputWrapped() throws Exception {
pipe.setOutputWrapper(new SoapWrapperPipe());
pipe.setPipeProcessor(new CorePipeProcessor());
configureAndStartPipe();
PipeRunResult prr = doPipe("testMessage");
assertEquals("success", prr.getPipeForward().getName());
String expected = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"><soapenv:Body>{ \"input\": \"testMessage\"}</soapenv:Body></soapenv:Envelope>";
assertEquals(expected, prr.getResult().asString());
}
Aggregations