@Test public void globalResources() throws Exception { this.resourceFactory.setUseGlobalResources(true); this.resourceFactory.afterPropertiesSet(); HttpResources globalResources = HttpResources.get(); assertSame(globalResources, this.resourceFactory.getConnectionProvider()); assertSame(globalResources, this.resourceFactory.getLoopResources()); assertFalse(globalResources.isDisposed()); this.resourceFactory.destroy(); assertTrue(globalResources.isDisposed()); }
@Test @Ignore public void disposeLaterDefers() { assertThat(testResources.isDisposed()).isFalse(); testResources.disposeLater(); assertThat(testResources.isDisposed()).isFalse(); testResources.disposeLater() .doOnSuccess(c -> assertThat(testResources.isDisposed()).isTrue()) .subscribe(); //not immediately disposed when subscribing assertThat(testResources.isDisposed()).as("immediate status on disposeLater subscribe").isFalse(); }
@Test public void shutdownLaterDefers() { HttpResources oldHttpResources = HttpResources.httpResources.getAndSet(testResources); HttpResources newHttpResources = HttpResources.httpResources.get(); try { assertThat(newHttpResources).isSameAs(testResources); HttpResources.disposeLoopsAndConnectionsLater(); assertThat(newHttpResources.isDisposed()).isFalse(); HttpResources.disposeLoopsAndConnectionsLater().block(); assertThat(newHttpResources.isDisposed()).as("disposeLoopsAndConnectionsLater completion").isTrue(); assertThat(HttpResources.httpResources.get()).isNull(); } finally { if (oldHttpResources != null && !HttpResources.httpResources.compareAndSet(null, oldHttpResources)) { oldHttpResources.dispose(); } } }