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"));
}
}