final SOAPMessage soapMessage = MessageFactory.newInstance().createMessage();
when(messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY)).thenReturn(true);
when(messageContext.getMessage()).thenReturn(soapMessage);
SamlCredential samlPrincipal = new SamlCredential(StreamUtils.readStreamString(getClass().getResourceAsStream("assertion.xml"), "UTF-8"));
boolean result = handler.handleMessage(messageContext);
assertTrue(result);
final SOAPEnvelope envelope = soapMessage.getSOAPPart().getEnvelope();
final Iterator<SOAPElement> securityHeaders = envelope.getHeader().getChildElements(new QName("Security", "wsse", SOAPSamlHandler.WSSE_NS));
while (securityHeaders.hasNext())
{
final SOAPElement securityElement = securityHeaders.next();
final Iterator<SOAPElement> assertions = securityElement.getChildElements(assertionQName);
while (assertions.hasNext())
{
final SOAPElement assertionElement = assertions.next();
final String expected = samlPrincipal.getAssertionAsString();
final String actual = SamlCredential.assertionToString(assertionElement);
assertTrue(XMLHelper.compareXMLContent(expected, actual));
}
}
}