use of org.springframework.ws.context.DefaultMessageContext in project spring-integration by spring-projects.
the class WebServiceInboundGatewayParserTests method testMessageHistoryWithMarshallingGateway.
@Test
public void testMessageHistoryWithMarshallingGateway() throws Exception {
MessageContext context = new DefaultMessageContext(new StubMessageFactory());
Unmarshaller unmarshaller = mock(Unmarshaller.class);
when(unmarshaller.unmarshal((Source) Mockito.any())).thenReturn("hello");
marshallingGateway.setUnmarshaller(unmarshaller);
marshallingGateway.invoke(context);
Message<?> message = requestsMarshalling.receive(100);
MessageHistory history = MessageHistory.read(message);
assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "marshalling", 0);
assertNotNull(componentHistoryRecord);
assertEquals("ws:inbound-gateway", componentHistoryRecord.get("type"));
}
use of org.springframework.ws.context.DefaultMessageContext in project spring-integration by spring-projects.
the class WebServiceInboundGatewayParserTests method testMessageHistoryWithSimpleGateway.
@Test
public void testMessageHistoryWithSimpleGateway() throws Exception {
MessageContext context = new DefaultMessageContext(new StubMessageFactory());
payloadExtractingGateway.invoke(context);
Message<?> message = requestsSimple.receive(100);
MessageHistory history = MessageHistory.read(message);
assertNotNull(history);
Properties componentHistoryRecord = TestUtils.locateComponentInHistory(history, "extractsPayload", 0);
assertNotNull(componentHistoryRecord);
assertEquals("ws:inbound-gateway", componentHistoryRecord.get("type"));
}
use of org.springframework.ws.context.DefaultMessageContext in project spring-integration-samples by spring-projects.
the class InboundGatewayTests method testSendAndReceive.
/**
* Emulate the Spring WS MessageDispatcherServlet by calling the gateway
* with a DOMSource object representing the payload of the original SOAP
* 'echoRequest' message. Expect an 'echoResponse' DOMSource object
* to be returned in synchronous fashion, which the MessageDispatcherServlet
* would in turn wrap in a SOAP envelope and return to the client.
*/
@Test
public void testSendAndReceive() throws Exception {
String xml = "<echoRequest xmlns=\"http://www.springframework.org/spring-ws/samples/echo\">hello</echoRequest>";
DomPoxMessageFactory messageFactory = new DomPoxMessageFactory();
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(new InputSource(new StringReader(xml)));
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DomPoxMessage request = new DomPoxMessage(document, transformer, "text/xml");
MessageContext messageContext = new DefaultMessageContext(request, messageFactory);
gateway.invoke(messageContext);
Object reply = messageContext.getResponse().getPayloadSource();
assertThat(reply, is(instanceOf(DOMSource.class)));
DOMSource replySource = (DOMSource) reply;
Element element = (Element) replySource.getNode().getFirstChild();
assertThat(element.getTagName(), equalTo("echoResponse"));
}
Aggregations