1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.ws.test.support.matcher;
18
19 import java.io.IOException;
20 import java.util.Iterator;
21 import javax.xml.namespace.QName;
22
23 import org.springframework.util.Assert;
24 import org.springframework.ws.soap.SoapHeader;
25 import org.springframework.ws.soap.SoapHeaderElement;
26 import org.springframework.ws.soap.SoapMessage;
27
28 import static org.springframework.ws.test.support.AssertionErrors.assertTrue;
29
30
31
32
33
34
35
36 public class SoapHeaderMatcher extends AbstractSoapMessageMatcher {
37
38 private final QName soapHeaderName;
39
40
41
42
43
44
45
46 public SoapHeaderMatcher(QName soapHeaderName) {
47 Assert.notNull(soapHeaderName, "'soapHeaderName' must not be null");
48 this.soapHeaderName = soapHeaderName;
49 }
50
51 @Override
52 protected void match(SoapMessage soapMessage) throws IOException, AssertionError {
53 SoapHeader soapHeader = soapMessage.getSoapHeader();
54 assertTrue("SOAP message [" + soapMessage + "] does not contain SOAP header", soapHeader != null, "Envelope",
55 soapMessage.getEnvelope().getSource());
56
57 Iterator<SoapHeaderElement> soapHeaderElementIterator = soapHeader.examineAllHeaderElements();
58 boolean found = false;
59 while (soapHeaderElementIterator.hasNext()) {
60 SoapHeaderElement soapHeaderElement = soapHeaderElementIterator.next();
61 if (soapHeaderName.equals(soapHeaderElement.getName())) {
62 found = true;
63 break;
64 }
65 }
66 assertTrue("SOAP header [" + soapHeaderName + "] not found", found, "Envelope",
67 soapMessage.getEnvelope().getSource());
68 }
69 }