@Test
public void testProcessMustUnderstandHeadersNotUnderstoodSoap11() throws Exception {

	MessageFactory messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_1_PROTOCOL);
	SOAPMessage request = messageFactory.createMessage();
	SOAPHeaderElement header = request.getSOAPHeader()
			.addHeaderElement(new QName("http://www.springframework.org", "Header", "spring-ws"));
	header.setActor(SOAPConstants.URI_SOAP_ACTOR_NEXT);
	header.setMustUnderstand(true);
	SoapMessageFactory factory = new SaajSoapMessageFactory(messageFactory);
	MessageContext context = new DefaultMessageContext(new SaajSoapMessage(request), factory);
	expect(interceptorMock.understands(isA(SoapHeaderElement.class))).andReturn(false);
	replay(interceptorMock);
	SoapEndpointInvocationChain chain = new SoapEndpointInvocationChain(new Object(),
			new SoapEndpointInterceptor[] { interceptorMock });
	boolean result = dispatcher.handleRequest(chain, context);
	Assert.assertFalse("Header understood", result);
	Assert.assertTrue("Context has no response", context.hasResponse());
	SoapBody responseBody = ((SoapMessage) context.getResponse()).getSoapBody();
	Assert.assertTrue("Response body has no fault", responseBody.hasFault());
	Soap11Fault fault = (Soap11Fault) responseBody.getFault();
	Assert.assertEquals("Invalid fault code", new QName(SOAPConstants.URI_NS_SOAP_1_1_ENVELOPE, "MustUnderstand"),
			fault.getFaultCode());
	Assert.assertEquals("Invalid fault string", SoapMessageDispatcher.DEFAULT_MUST_UNDERSTAND_FAULT_STRING,
			fault.getFaultStringOrReason());
	Assert.assertEquals("Invalid fault string locale", Locale.ENGLISH, fault.getFaultStringLocale());
	verify(interceptorMock);
}