@Test(expected = NullPointerException.class) public void composeNull() { error.completable.compose(null); }
@Test(timeout = 5000) public void composeNormal() { Completable c = error.completable.compose(new CompletableTransformer() { @Override public Completable apply(Completable n) { return n.onErrorComplete(); } }); c.blockingAwait(); }
@Test public void completableTransformerThrows() { try { Completable.complete().compose(new CompletableTransformer() { @Override public Completable apply(Completable v) { throw new TestException("Forced failure"); } }); fail("Should have thrown!"); } catch (TestException ex) { assertEquals("Forced failure", ex.getMessage()); } }
@Test public void noEvent() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle)) .test(); subject.onComplete(); testObserver.assertComplete(); }
@Test public void noEvents() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bindUntilEvent(lifecycle, "stop")) .test(); subject.onComplete(); testObserver.assertComplete(); }
@Test public void noEvents() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle, CORRESPONDING_EVENTS)) .test(); subject.onComplete(); testObserver.assertComplete(); }
@Test public void oneEvent() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle)) .test(); lifecycle.onNext("stop"); subject.onComplete(); testObserver.assertError(CancellationException.class); } }
@Test public void oneWrongEvent() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bindUntilEvent(lifecycle, "stop")) .test(); lifecycle.onNext("keep going"); subject.onComplete(); testObserver.assertComplete(); }
@Test public void oneStartEvent() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle, CORRESPONDING_EVENTS)) .test(); lifecycle.onNext("create"); subject.onComplete(); testObserver.assertComplete(); }
@Test public void twoEvents() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bindUntilEvent(lifecycle, "stop")) .test(); lifecycle.onNext("keep going"); lifecycle.onNext("stop"); subject.onComplete(); testObserver.assertError(CancellationException.class); }
@Test public void twoOpenEvents() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle, CORRESPONDING_EVENTS)) .test(); lifecycle.onNext("create"); lifecycle.onNext("start"); subject.onComplete(); testObserver.assertComplete(); }
@Test public void openAndCloseEvent() { TestObserver<Void> testObserver = completable .compose(RxLifecycle.bind(lifecycle, CORRESPONDING_EVENTS)) .test(); lifecycle.onNext("create"); lifecycle.onNext("destroy"); subject.onComplete(); testObserver.assertError(CancellationException.class); }
@Test public void ct1ToCt2() { final int[] calls = { 0 }; rx.Completable.Transformer transformer = new rx.Completable.Transformer() { @Override public rx.Completable call(rx.Completable o) { return o.doOnCompleted(new Action0() { @Override public void call() { calls[0]++; } }); } }; Completable.complete() .compose(toV2Transformer(transformer)) .test() .assertResult(); assertEquals(1, calls[0]); }
@SuppressWarnings("unchecked") private void subscribe(Completable o, List<Disposable> to) { to.add(o.compose(subscriptionHandler).subscribe()); } }
private void testCompletable() { Completable.timer(3, TimeUnit.SECONDS) .subscribeOn(Schedulers.computation()) .observeOn(AndroidSchedulers.mainThread()) .compose(RxLifecycle.bind(this).disposeCompletableWhen(LifecycleEvent.DESTROY_VIEW)) .subscribe(new Action() { @Override public void run() throws Exception { toast("Completable -> onComplete()"); } }); }
@Override public Completable storeDocument(String index, String uuid, JsonObject document) { String fullIndex = installationPrefix() + index; long start = System.currentTimeMillis(); if (log.isDebugEnabled()) { log.debug("Adding object {" + uuid + ":" + DEFAULT_TYPE + "} to index {" + fullIndex + "}"); } return client.storeDocument(fullIndex, DEFAULT_TYPE, uuid, document).async() .doOnSuccess(response -> { if (log.isDebugEnabled()) { log.debug("Added object {" + uuid + ":" + DEFAULT_TYPE + "} to index {" + fullIndex + "}. Duration " + (System.currentTimeMillis() - start) + "[ms]"); } }).toCompletable().compose(withTimeoutAndLog("Storing document {" + fullIndex + "} / {" + uuid + "}", true)); }
@Override public Completable deregisterPipeline(String name) { String fullname = installationPrefix() + name; return client.deregisterPlugin(fullname).async() .doOnSuccess(response -> { if (log.isDebugEnabled()) { log.debug("Deregistered pipeline {" + fullname + "} response: {" + response.toString() + "}"); } }).toCompletable() .onErrorResumeNext(ignore404) .compose(withTimeoutAndLog("Removed pipeline {" + fullname + "}", true)); }
@Override public Completable deleteDocument(String index, String uuid) { String fullIndex = installationPrefix() + index; if (log.isDebugEnabled()) { log.debug("Deleting document {" + uuid + "} from index {" + fullIndex + "}."); } return client.deleteDocument(fullIndex, DEFAULT_TYPE, uuid).async() .doOnSuccess(response -> { if (log.isDebugEnabled()) { log.debug("Deleted object {" + uuid + "} from index {" + fullIndex + "}"); } }).toCompletable() .onErrorResumeNext(ignore404) .compose(withTimeoutAndLog("Deleting document {" + fullIndex + "} / {" + uuid + "}", true)); }
@Override public Completable registerIngestPipeline(IndexInfo info) { String name = installationPrefix() + info.getIngestPipelineName(); JsonObject config = info.getIngestPipelineSettings(); return client.registerPipeline(name, config).async() .doOnSuccess(response -> { if (log.isDebugEnabled()) { log.debug("Registered pipeline {" + name + "} response: {" + response.toString() + "}"); } }).toCompletable() .onErrorResumeNext(error -> isResourceAlreadyExistsError(error) ? Completable.complete() : Completable.error(error)) .compose(withTimeoutAndLog("Creating pipeline {" + name + "}", true)); }
private Completable inTransaction(Exception e) throws Exception { return client.rxGetConnection().flatMapCompletable(conn -> { return rxInsertExtraFolks(conn) .andThen(uniqueNames(conn)) .<List<String>>collect(ArrayList::new, List::add) .flatMapCompletable(names -> rxAssertEquals(namesWithExtraFolks(), names)) .compose(upstream -> e == null ? upstream : upstream.andThen(Completable.error(e))) .compose(SQLClientHelper.txCompletableTransformer(conn)) .andThen(rxAssertAutoCommit(conn)) .doFinally(conn::close); }); } }