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());
SoapMessage response = (SoapMessage) context.getResponse();
SoapBody responseBody = response.getSoapBody();
Assert.assertTrue("Response body has no fault", responseBody.hasFault());
Soap12Fault fault = (Soap12Fault) responseBody.getFault();
Assert.assertEquals("Invalid fault code", new QName(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "MustUnderstand"),
fault.getFaultCode());
Assert.assertEquals("Invalid fault string", SoapMessageDispatcher.DEFAULT_MUST_UNDERSTAND_FAULT_STRING,
fault.getFaultReasonText(Locale.ENGLISH));
SoapHeader responseHeader = response.getSoapHeader();
Iterator<SoapHeaderElement> iterator = responseHeader.examineAllHeaderElements();
Assert.assertTrue("Response header has no elements", iterator.hasNext());
SoapHeaderElement headerElement = iterator.next();
Assert.assertEquals("No NotUnderstood header",
new QName(SOAPConstants.URI_NS_SOAP_1_2_ENVELOPE, "NotUnderstood"), headerElement.getName());