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 import static org.junit.Assert.*;
29
30
31
32
33
34
35 @SuppressWarnings("Since15")
36 public class StaxEventPayloadEndpointTest extends AbstractMessageEndpointTestCase {
37
38 @Override
39 protected MessageEndpoint createNoResponseEndpoint() {
40 return new AbstractStaxEventPayloadEndpoint() {
41 @Override
42 protected void invokeInternal(XMLEventReader eventReader,
43 XMLEventConsumer eventWriter,
44 XMLEventFactory eventFactory) throws Exception {
45 assertNotNull("No EventReader passed", eventReader);
46 }
47 };
48 }
49
50 @Override
51 protected MessageEndpoint createNoRequestPayloadEndpoint() {
52 return new AbstractStaxEventPayloadEndpoint() {
53
54 @Override
55 protected void invokeInternal(XMLEventReader eventReader,
56 XMLEventConsumer eventWriter,
57 XMLEventFactory eventFactory) throws Exception {
58 assertNull("EventReader passed", eventReader);
59 }
60 };
61 }
62
63 @Override
64 protected MessageEndpoint createResponseEndpoint() {
65 return new AbstractStaxEventPayloadEndpoint() {
66
67 @Override
68 protected void invokeInternal(XMLEventReader eventReader,
69 XMLEventConsumer eventWriter,
70 XMLEventFactory eventFactory) throws XMLStreamException {
71 assertNotNull("eventReader not given", eventReader);
72 assertNotNull("eventWriter not given", eventWriter);
73 assertNotNull("eventFactory not given", eventFactory);
74 assertTrue("eventReader has not next element", eventReader.hasNext());
75 XMLEvent event = eventReader.nextEvent();
76 assertTrue("Not a start document", event.isStartDocument());
77 event = eventReader.nextEvent();
78 assertTrue("Not a start element", event.isStartElement());
79 assertEquals("Invalid start event local name", REQUEST_ELEMENT,
80 event.asStartElement().getName().getLocalPart());
81 assertEquals("Invalid start event namespace", NAMESPACE_URI,
82 event.asStartElement().getName().getNamespaceURI());
83 assertTrue("eventReader has not next element", eventReader.hasNext());
84 event = eventReader.nextEvent();
85 assertTrue("Not a end element", event.isEndElement());
86 assertEquals("Invalid end event local name", REQUEST_ELEMENT,
87 event.asEndElement().getName().getLocalPart());
88 assertEquals("Invalid end event namespace", NAMESPACE_URI,
89 event.asEndElement().getName().getNamespaceURI());
90 Namespace namespace = eventFactory.createNamespace(NAMESPACE_URI);
91 QName name = new QName(NAMESPACE_URI, RESPONSE_ELEMENT);
92 eventWriter
93 .add(eventFactory.createStartElement(name, null, Collections.singleton(namespace).iterator()));
94 eventWriter.add(eventFactory.createEndElement(name, Collections.singleton(namespace).iterator()));
95 eventWriter.add(eventFactory.createEndDocument());
96 }
97 };
98 }
99
100
101 }