1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.soap.soap11;
18
19 import java.util.Iterator;
20 import javax.xml.namespace.QName;
21
22 import org.springframework.ws.soap.AbstractSoapHeaderTestCase;
23 import org.springframework.ws.soap.SoapHeaderElement;
24 import org.springframework.ws.soap.SoapVersion;
25 import org.springframework.xml.transform.StringResult;
26
27 public abstract class AbstractSoap11HeaderTestCase extends AbstractSoapHeaderTestCase {
28
29 private static final String PREFIX = "spring";
30
31 public void testGetType() {
32 assertTrue("Invalid type returned", soapHeader instanceof Soap11Header);
33 }
34
35 public void testGetName() throws Exception {
36 assertEquals("Invalid qualified name", new QName(SoapVersion.SOAP_11.getEnvelopeNamespaceUri(), "Header"),
37 soapHeader.getName());
38 }
39
40 public void testGetSource() throws Exception {
41 StringResult result = new StringResult();
42 transformer.transform(soapHeader.getSource(), result);
43 assertXMLEqual("Invalid contents of header",
44 "<SOAP-ENV:Header xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' />", result.toString());
45 }
46
47 public void testExamineHeaderElementsToProcessActors() throws Exception {
48 QName qName = new QName(NAMESPACE, "localName1", PREFIX);
49 SoapHeaderElement headerElement = soapHeader.addHeaderElement(qName);
50 headerElement.setActorOrRole("role1");
51 qName = new QName(NAMESPACE, "localName2", PREFIX);
52 headerElement = soapHeader.addHeaderElement(qName);
53 headerElement.setActorOrRole("role2");
54 qName = new QName(NAMESPACE, "localName3", PREFIX);
55 headerElement = soapHeader.addHeaderElement(qName);
56 headerElement.setActorOrRole(SoapVersion.SOAP_11.getNextActorOrRoleUri());
57 Iterator iterator = ((Soap11Header) soapHeader).examineHeaderElementsToProcess(new String[]{"role1"});
58 assertNotNull("header element iterator is null", iterator);
59 assertTrue("header element iterator has no elements", iterator.hasNext());
60 checkHeaderElement((SoapHeaderElement) iterator.next());
61 assertTrue("header element iterator has no elements", iterator.hasNext());
62 checkHeaderElement((SoapHeaderElement) iterator.next());
63 assertFalse("header element iterator has too many elements", iterator.hasNext());
64 }
65
66 public void testExamineHeaderElementsToProcessNoActors() throws Exception {
67 QName qName = new QName(NAMESPACE, "localName1", PREFIX);
68 SoapHeaderElement headerElement = soapHeader.addHeaderElement(qName);
69 headerElement.setActorOrRole("");
70 qName = new QName(NAMESPACE, "localName2", PREFIX);
71 headerElement = soapHeader.addHeaderElement(qName);
72 headerElement.setActorOrRole("role1");
73 qName = new QName(NAMESPACE, "localName3", PREFIX);
74 headerElement = soapHeader.addHeaderElement(qName);
75 headerElement.setActorOrRole(SoapVersion.SOAP_11.getNextActorOrRoleUri());
76 Iterator iterator = ((Soap11Header) soapHeader).examineHeaderElementsToProcess(new String[0]);
77 assertNotNull("header element iterator is null", iterator);
78 assertTrue("header element iterator has no elements", iterator.hasNext());
79 checkHeaderElement((SoapHeaderElement) iterator.next());
80 assertTrue("header element iterator has no elements", iterator.hasNext());
81 checkHeaderElement((SoapHeaderElement) iterator.next());
82 assertFalse("header element iterator has too many elements", iterator.hasNext());
83 }
84
85 private void checkHeaderElement(SoapHeaderElement headerElement) {
86 QName name = headerElement.getName();
87 assertTrue("Invalid name on header element", new QName(NAMESPACE, "localName1", PREFIX).equals(name) ||
88 new QName(NAMESPACE, "localName3", PREFIX).equals(name));
89 }
90
91 }