Как подтвердить правильность текста сообщения в веб-сокете Java
У меня есть задача: подготовить тесты с помощью WebSocket. Собственно, в будущем это будет несколько веб-сокетов.
@Test
public void test() throws DeploymentException, IOException, URISyntaxException {
WebsocketHelper websocketHelper = new WebsocketHelper();
websocketHelper.checkWebSocketMessageInRoles();
}
Я создал WebsocketHelper.class со следующим содержанием:
private void createConnection(String cookieSessionId, String uri) throws URISyntaxException, IOException, DeploymentException {
this.container = ContainerProvider.getWebSocketContainer();
this.endpoint = new WebsocketClientEndpoint();
ClientEndpointConfig cec = ClientEndpointConfig.Builder.create()
.configurator(new ClientEndpointConfig.Configurator() {
@Override
public void beforeRequest(Map<String, List<String>> headers) {
super.beforeRequest(headers);
List<String> cookieList = headers.get("Cookie");
if (null == cookieList) {
cookieList = new ArrayList<>();
}
cookieList.add("connect.sid=" + cookieSessionId); // set your cookie value here
headers.put("Cookie", cookieList);
}
}).build();
session = this.container.connectToServer(this.endpoint, cec, new URI(uri));
this.endpoint.onMessage("");
}
public void checkWebSocketMessageInRoles() throws DeploymentException, IOException, URISyntaxException {
String cookieSessionId = loginRestObject.testCookies().getValue("connect.sid");
createConnection(cookieSessionId, URI_ROLES);
}
В конце у меня есть класс WebsocketClientEndpoint, где у меня есть метод onOpen.
@Override
public void onOpen(Session session, EndpointConfig config) {
this.session = session;
this.session.addMessageHandler(new javax.websocket.MessageHandler.Whole<String>() {
@Override
public void onMessage(String message) {System.out.println(message);
}
});
}
Вопрос в том, как я могу проверить сообщение после изменения действий на странице. Например, я нажимаю кнопку Selenium WebDriver Ok и захожу, веб-сокет возвращает ожидаемый json.