/** Test unbinding of the response message with bound header
*/
public void testUnbindResponseMessageWithBoundHeader() throws Exception
{
CommonBindingProvider bindingProvider = new CommonBindingProvider(CommonSOAPBinding.SOAP12HTTP_BINDING, Type.JAXRPC);
CommonBinding binding = (CommonBinding)bindingProvider.getCommonBinding();
ByteArrayInputStream inputStream = new ByteArrayInputStream(resEnvelopeWithBoundHeader.getBytes());
MessageFactory factory = new MessageFactoryImpl();
SOAPMessageImpl resMessage = (SOAPMessageImpl)factory.createMessage(null, inputStream);
CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext();
msgContext.setSOAPMessage(resMessage);
// Add bound header
QName xmlName = new QName("http://somens", "OutHeader");
ParameterMetaData paramMetaData = new ParameterMetaData(opMetaData, xmlName, Constants.TYPE_LITERAL_STRING, "java.lang.String");
paramMetaData.setMode(ParameterMode.OUT);
paramMetaData.setInHeader(true);
paramMetaData.setIndex(1);
opMetaData.addParameter(paramMetaData);
EndpointInvocation epInv = new EndpointInvocation(opMetaData);
binding.unbindResponseMessage(opMetaData, resMessage, epInv, null);
assertEquals("Hello World!", epInv.getReturnValue());
Object headerValue = epInv.getResponseParamValue(xmlName);
assertEquals("OUT header message", headerValue);
}