@Override public Boolean call(RxObjectEventMessage rxEvent) { return rxEvent.message() instanceof RegisteredMessage; } }
@Override public Observable<?> call(RxObjectEventConnected rxEventConn) { return RxMoreObservables.sendObjectMessage(rxEventConn.sender(), new RegisterMessage("asdf")) .toObservable(); } })
private void register() throws IOException, InterruptedException, ObjectParseException { connection.onNext(new RxObjectEventConnected(sender), 0); testScheduler.triggerActions(); verify(sender).sendObjectMessage(new RegisterMessage("asdf")); connection.onNext(new RxObjectEventMessage(sender, new RegisteredMessage()), 0); testScheduler.triggerActions(); }
@Test public void testWhenResponseOnDifferentMessage_throwError() throws Exception { final Subscription subscribe = socket.connection().subscribe(observer); socket.sendMessageOnceWhenConnected( new Func1<String, Observable<Object>>() { @Override public Observable<Object> call(String id) { return Observable.<Object>just(new DataMessage(id, "krowa")); } }) .subscribe(dataObserver); try { register(); verify(sender).sendObjectMessage(new DataMessage("0", "krowa")); connection.onNext(new RxObjectEventMessage(sender, new DataMessage("100", "asdf")), 0); testScheduler.advanceTimeBy(10, TimeUnit.SECONDS); verify(dataObserver).onError(any(Throwable.class)); } finally { subscribe.unsubscribe(); } }
@Test public void testConnection_registerIsSent() throws Exception { final Subscription subscribe = socket.connection().subscribe(observer); try { connection.onNext(new RxObjectEventConnected(sender), 0); testScheduler.triggerActions(); verify(sender).sendObjectMessage(new RegisterMessage("asdf")); } finally { subscribe.unsubscribe(); } }
@Test public void testWhenResponse_messageSuccess() throws Exception { final Subscription subscribe = socket.connection().subscribe(observer); socket.sendMessageOnceWhenConnected( new Func1<String, Observable<Object>>() { @Override public Observable<Object> call(String id) { return Observable.<Object>just(new DataMessage(id, "krowa")); } }) .subscribe(dataObserver); try { register(); verify(sender).sendObjectMessage(new DataMessage("0", "krowa")); connection.onNext(new RxObjectEventMessage(sender, new DataMessage("0", "asdf")), 0); testScheduler.advanceTimeBy(10, TimeUnit.SECONDS); verify(dataObserver).onNext(new DataMessage("0", "asdf")); verify(dataObserver).onCompleted(); } finally { subscribe.unsubscribe(); } }