У меня есть весенний загрузочный проект с кодом клиента websocket, и я хотел бы написать для него тест junit. Но я не уверен, как имитировать поведение websocket в модульном тесте. Как написать для него тест junit?
@ClientEndpoint
public class WebSocketClient {
private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketClient.class);
private Session userSession = null;
private MessageHandler messageHandler;
public WebSocketClient(URI endpoint) {
WebSocketContainer container = ContainerProvider.getWebSocketContainer();
container.setDefaultMaxTextMessageBufferSize(1024 * 1024);
container.setDefaultMaxBinaryMessageBufferSize(1024 * 1024);
try {
container.connectToServer(this, endpoint);
} catch (Exception e) {
LOGGER.error(String.format("Exception occurred when connecting to websocket server %s", e.getMessage()));
}
}
@OnOpen
public void onOpen(Session userSession) {
this.userSession = userSession;
}
@OnClose
public void onClose(Session userSession, CloseReason reason) {
this.userSession = null;
}
@OnMessage
public void onMessage(String message) {
if (this.messageHandler != null) {
this.messageHandler.handleMessage(message);
}
}
public void addMessageHandler(MessageHandler msgHandler) {
this.messageHandler = msgHandler;
}
public static interface MessageHandler {
void handleMessage(String message);
}
}
Хотелось бы увидеть хотя бы модульный тест для подключения к серверу и для метода сообщения.