Я хочу создать небольшой юнит-тест для AbstractSoapInterceptor, например:
AbstractSoapInterceptor
public class SimpleInterceptorTest { private SimpleInterceptor simpleInterceptor; @BeforeMethod public void setUp() { simpleInterceptor = new SimpleInterceptor(); } @Test public void testHandleMessage() throws Exception { SoapMessage soapMessage = createSoapMessage("requests/sampleRequest.xml"); simpleInterceptor.handleMessage(soapMessage); // Assertions } }
requests/sampleRequest.xml - это запрос на мыло типа:
requests/sampleRequest.xml
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <soap:Header> <wsse:Security> <wsc:SecurityContextToken xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="sct"> <wsc:Identifier>abcd</wsc:Identifier> </wsc:SecurityContextToken> </wsse:Security> </soap:Header> <soap:Body> <wst:RequestSecurityToken xmlns:wst="http://schemas.xmlsoap.org/ws/2005/02/trust" > <wst:TokenType>http://schemas.xmlsoap.org/ws/2005/02/sc/sct</wst:TokenType> <wst:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Validate</wst:RequestType> <wst:ValidateTarget> <wsse:SecurityTokenReference> <wsse:Reference URI="#sct"/> </wsse:SecurityTokenReference> </wst:ValidateTarget> </wst:RequestSecurityToken> </soap:Body> </soap:Envelope>
Теперь у меня есть следующие вопросы:
Это правильный способ проверки перехватчиков?
Если да, как реализовать метод createSoapMessage?
createSoapMessage
Вот пример того, как выглядят юнит-тесты для перехватчиков Apache:
https://github.com/apache/cxf/blob/master/rt/wsdl/src/test/java/org/apache/cxf/wsdl/interceptors/DocLiteralInInterceptorTest.java
Поэтому возможно реализовать метод createSoapMessage, но не так просто, как хотелось бы. Буду очень признателен за более простые решения.
Сейчас я тестирую перехватчики с помощью SoapUI.