diff --git a/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/HubConnectionTest.java b/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/HubConnectionTest.java index da28f279a4..52a6bf3487 100644 --- a/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/HubConnectionTest.java +++ b/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/HubConnectionTest.java @@ -2256,14 +2256,12 @@ class HubConnectionTest { hubConnection.start().timeout(1, TimeUnit.SECONDS).blockingAwait(); - TimeUnit.MILLISECONDS.sleep(100); - hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); + String message = mockTransport.getNextSentMessage().timeout(1, TimeUnit.SECONDS).blockingGet(); + assertEquals("{\"type\":6}" + RECORD_SEPARATOR, message); + message = mockTransport.getNextSentMessage().timeout(1, TimeUnit.SECONDS).blockingGet(); + assertEquals("{\"type\":6}" + RECORD_SEPARATOR, message); - String[] sentMessages = mockTransport.getSentMessages(); - assertTrue(sentMessages.length > 1); - for (int i = 1; i < sentMessages.length; i++) { - assertEquals("{\"type\":6}" + RECORD_SEPARATOR, sentMessages[i]); - } + hubConnection.stop().timeout(1, TimeUnit.SECONDS).blockingAwait(); } @Test diff --git a/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/MockTransport.java b/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/MockTransport.java index 02e2224565..6b65067c62 100644 --- a/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/MockTransport.java +++ b/src/SignalR/clients/java/signalr/src/test/java/com/microsoft/signalr/MockTransport.java @@ -7,6 +7,7 @@ import java.util.ArrayList; import io.reactivex.Completable; import io.reactivex.subjects.CompletableSubject; +import io.reactivex.subjects.SingleSubject; class MockTransport implements Transport { private OnReceiveCallBack onReceiveCallBack; @@ -17,6 +18,7 @@ class MockTransport implements Transport { final private boolean autoHandshake; final private CompletableSubject startSubject = CompletableSubject.create(); final private CompletableSubject stopSubject = CompletableSubject.create(); + private SingleSubject sendSubject = SingleSubject.create(); private static final String RECORD_SEPARATOR = "\u001e"; @@ -51,6 +53,8 @@ class MockTransport implements Transport { public Completable send(String message) { if (!(ignorePings && message.equals("{\"type\":6}" + RECORD_SEPARATOR))) { sentMessages.add(message); + sendSubject.onSuccess(message); + sendSubject = SingleSubject.create(); } return Completable.complete(); } @@ -89,6 +93,10 @@ class MockTransport implements Transport { return sentMessages.toArray(new String[sentMessages.size()]); } + public SingleSubject getNextSentMessage() { + return sendSubject; + } + public String getUrl() { return this.url; }