diff --git a/spring-integration-samples/ws-inbound-gateway/src/test/java/org/springframework/integration/samples/ws/InboundGatewayTests.java b/spring-integration-samples/ws-inbound-gateway/src/test/java/org/springframework/integration/samples/ws/InboundGatewayTests.java index 591806334b..af9915c5d4 100644 --- a/spring-integration-samples/ws-inbound-gateway/src/test/java/org/springframework/integration/samples/ws/InboundGatewayTests.java +++ b/spring-integration-samples/ws-inbound-gateway/src/test/java/org/springframework/integration/samples/ws/InboundGatewayTests.java @@ -17,28 +17,37 @@ package org.springframework.integration.samples.ws; import static org.hamcrest.CoreMatchers.equalTo; - import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; -import javax.xml.transform.Source; +import java.io.StringReader; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import org.junit.Test; import org.junit.runner.RunWith; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.xml.sax.InputSource; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.integration.Message; -import org.springframework.integration.support.MessageBuilder; import org.springframework.integration.ws.SimpleWebServiceInboundGateway; -import org.springframework.integration.xml.source.DomSourceFactory; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.ws.context.DefaultMessageContext; +import org.springframework.ws.context.MessageContext; +import org.springframework.ws.pox.dom.DomPoxMessage; +import org.springframework.ws.pox.dom.DomPoxMessageFactory; /** * Out-of-container tests for ws:inbound-gateway message processing. * * @author Chris Beams + * @author Mark Fisher */ @ContextConfiguration("inbound-gateway-config.xml") @RunWith(SpringJUnit4ClassRunner.class) @@ -55,15 +64,21 @@ public class InboundGatewayTests { * would in turn wrap in a SOAP envelope and return to the client. */ @Test - public void testSendAndReceive() { - Source source = new DomSourceFactory().createSource( - "hello"); - - Message msg = MessageBuilder.withPayload(source).build(); - - Object reply = gateway.sendAndReceive(msg); - + public void testSendAndReceive() throws Exception { + String xml = "hello"; + 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(DOMSource.class)); - assertThat(((DOMSource)reply).getNode().getNodeName(), equalTo("echoResponse")); + DOMSource replySource = (DOMSource) reply; + Element element = (Element) replySource.getNode().getFirstChild(); + assertThat(element.getTagName(), equalTo("echoResponse")); } }