updated test so it no longer depends on the exposed gateway method... now it actually tests the endpoint invocation
This commit is contained in:
@@ -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(
|
||||
"<echoRequest xmlns=\"http://www.springframework.org/spring-ws/samples/echo\">hello</echoRequest>");
|
||||
|
||||
Message<Source> msg = MessageBuilder.withPayload(source).build();
|
||||
|
||||
Object reply = gateway.sendAndReceive(msg);
|
||||
|
||||
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(DOMSource.class));
|
||||
assertThat(((DOMSource)reply).getNode().getNodeName(), equalTo("echoResponse"));
|
||||
DOMSource replySource = (DOMSource) reply;
|
||||
Element element = (Element) replySource.getNode().getFirstChild();
|
||||
assertThat(element.getTagName(), equalTo("echoResponse"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user