2424import javax .xml .soap .SOAPHeaderElement ;
2525import javax .xml .soap .SOAPMessage ;
2626
27- import junit .framework .TestCase ;
28- import org .easymock .MockControl ;
2927import org .springframework .ws .context .DefaultMessageContext ;
3028import org .springframework .ws .context .MessageContext ;
3129import org .springframework .ws .soap .SoapBody ;
3836import org .springframework .ws .soap .soap11 .Soap11Fault ;
3937import org .springframework .ws .soap .soap12 .Soap12Fault ;
4038
39+ import junit .framework .TestCase ;
40+ import org .easymock .MockControl ;
41+
4142public class SoapMessageDispatcherTest extends TestCase {
4243
4344 private SoapMessageDispatcher dispatcher ;
@@ -225,4 +226,23 @@ public void testProcessNoHeader() throws Exception {
225226 assertTrue ("Invalid result" , result );
226227 interceptorControl .verify ();
227228 }
229+
230+ public void testProcessMustUnderstandHeadersNoInterceptors () throws Exception {
231+ MessageFactory messageFactory = MessageFactory .newInstance (SOAPConstants .SOAP_1_1_PROTOCOL );
232+ SOAPMessage request = messageFactory .createMessage ();
233+ SOAPHeaderElement header =
234+ request .getSOAPHeader ().addHeaderElement (new QName ("http://www.springframework.org" , "Header" ));
235+ header .setActor (SOAPConstants .URI_SOAP_ACTOR_NEXT );
236+ header .setMustUnderstand (true );
237+ SoapMessageFactory factory = new SaajSoapMessageFactory (messageFactory );
238+ MessageContext context = new DefaultMessageContext (new SaajSoapMessage (request ), factory );
239+ interceptorControl .replay ();
240+
241+ SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain (new Object (), null );
242+
243+ boolean result = dispatcher .handleRequest (chain , context );
244+ assertFalse ("Header understood" , result );
245+ interceptorControl .verify ();
246+ }
247+
228248}
0 commit comments