[Java] Add null ref test for websocket
This commit is contained in:
parent
46a3d7e342
commit
36ca210a65
|
|
@ -89,7 +89,7 @@ class WebSocketTransport implements Transport {
|
|||
void onClose(Integer code, String reason) {
|
||||
logger.info("WebSocket connection stopping with " +
|
||||
"code {} and reason '{}'.", code, reason);
|
||||
if (code != 1000) {
|
||||
if (code == null || code != 1000) {
|
||||
onClose.invoke(reason);
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -6,10 +6,15 @@ package com.microsoft.signalr;
|
|||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import io.reactivex.Completable;
|
||||
import io.reactivex.Single;
|
||||
|
||||
class WebSocketTransportTest {
|
||||
@Test
|
||||
public void WebsocketThrowsIfItCantConnect() {
|
||||
|
|
@ -17,4 +22,59 @@ class WebSocketTransportTest {
|
|||
RuntimeException exception = assertThrows(RuntimeException.class, () -> transport.start("http://www.example.com").blockingAwait(1, TimeUnit.SECONDS));
|
||||
assertEquals("There was an error starting the Websockets transport.", exception.getMessage());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void CanPassNullExitCodeToOnClosed() {
|
||||
WebSocketTransport transport = new WebSocketTransport(new HashMap<>(), new WebSocketTestHttpClient());
|
||||
AtomicBoolean closed = new AtomicBoolean();
|
||||
transport.setOnClose(reason -> {
|
||||
closed.set(true);
|
||||
});
|
||||
transport.start("");
|
||||
transport.stop();
|
||||
assertTrue(closed.get());
|
||||
}
|
||||
|
||||
class WebSocketTestHttpClient extends HttpClient {
|
||||
@Override
|
||||
public Single<HttpResponse> send(HttpRequest request) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public WebSocketWrapper createWebSocket(String url, Map<String, String> headers) {
|
||||
return new TestWrapper();
|
||||
}
|
||||
}
|
||||
|
||||
class TestWrapper extends WebSocketWrapper {
|
||||
private WebSocketOnClosedCallback onClose;
|
||||
|
||||
@Override
|
||||
public Completable start() {
|
||||
return Completable.complete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable stop() {
|
||||
if (onClose != null) {
|
||||
onClose.invoke(null, "");
|
||||
}
|
||||
return Completable.complete();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Completable send(String message) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnReceive(OnReceiveCallBack onReceive) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnClose(WebSocketOnClosedCallback onClose) {
|
||||
this.onClose = onClose;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue