Проверка клиентского модуля Websocket при весенней загрузке - PullRequest
0 голосов
/ 26 июня 2019

У меня есть весенний загрузочный проект с кодом клиента 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);
    }
}

Хотелось бы увидеть хотя бы модульный тест для подключения к серверу и для метода сообщения.

...