1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.server.endpoint;
18
19 import java.util.Collections;
20 import javax.xml.namespace.QName;
21 import javax.xml.stream.XMLEventFactory;
22 import javax.xml.stream.XMLEventReader;
23 import javax.xml.stream.XMLStreamException;
24 import javax.xml.stream.events.Namespace;
25 import javax.xml.stream.events.XMLEvent;
26 import javax.xml.stream.util.XMLEventConsumer;
27
28
29
30
31
32
33 public class StaxEventPayloadEndpointTest extends AbstractMessageEndpointTestCase {
34
35 protected MessageEndpoint createNoResponseEndpoint() {
36 return new AbstractStaxEventPayloadEndpoint() {
37 protected void invokeInternal(XMLEventReader eventReader,
38 XMLEventConsumer eventWriter,
39 XMLEventFactory eventFactory) throws Exception {
40 assertNotNull("No EventReader passed", eventReader);
41 }
42 };
43 }
44
45 protected MessageEndpoint createNoRequestPayloadEndpoint() {
46 return new AbstractStaxEventPayloadEndpoint() {
47
48 protected void invokeInternal(XMLEventReader eventReader,
49 XMLEventConsumer eventWriter,
50 XMLEventFactory eventFactory) throws Exception {
51 assertNull("EventReader passed", eventReader);
52 }
53 };
54 }
55
56 protected MessageEndpoint createResponseEndpoint() {
57 return new AbstractStaxEventPayloadEndpoint() {
58
59 protected void invokeInternal(XMLEventReader eventReader,
60 XMLEventConsumer eventWriter,
61 XMLEventFactory eventFactory) throws XMLStreamException {
62 assertNotNull("eventReader not given", eventReader);
63 assertNotNull("eventWriter not given", eventWriter);
64 assertNotNull("eventFactory not given", eventFactory);
65 assertTrue("eventReader has not next element", eventReader.hasNext());
66 XMLEvent event = eventReader.nextEvent();
67 assertTrue("Not a start document", event.isStartDocument());
68 event = eventReader.nextEvent();
69 assertTrue("Not a start element", event.isStartElement());
70 assertEquals("Invalid start event local name", REQUEST_ELEMENT,
71 event.asStartElement().getName().getLocalPart());
72 assertEquals("Invalid start event namespace", NAMESPACE_URI,
73 event.asStartElement().getName().getNamespaceURI());
74 assertTrue("eventReader has not next element", eventReader.hasNext());
75 event = eventReader.nextEvent();
76 assertTrue("Not a end element", event.isEndElement());
77 assertEquals("Invalid end event local name", REQUEST_ELEMENT,
78 event.asEndElement().getName().getLocalPart());
79 assertEquals("Invalid end event namespace", NAMESPACE_URI,
80 event.asEndElement().getName().getNamespaceURI());
81 Namespace namespace = eventFactory.createNamespace(NAMESPACE_URI);
82 QName name = new QName(NAMESPACE_URI, RESPONSE_ELEMENT);
83 eventWriter
84 .add(eventFactory.createStartElement(name, null, Collections.singleton(namespace).iterator()));
85 eventWriter.add(eventFactory.createEndElement(name, Collections.singleton(namespace).iterator()));
86 eventWriter.add(eventFactory.createEndDocument());
87 }
88 };
89 }
90
91
92 }