Make Java test more reliable (#18863)

This commit is contained in:
Brennan 2020-02-06 19:39:27 -08:00 committed by GitHub
parent db0bf0a26d
commit 18d8b75d5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 7 deletions

View File

@ -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

View File

@ -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<String> 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<String> getNextSentMessage() {
return sendSubject;
}
public String getUrl() {
return this.url;
}