@Test public void testUnsubscribe() throws Exception { @SuppressWarnings("unchecked") final AsyncHandler<Object> handler = mock(AsyncHandler.class); final Future<?> future = mock(Future.class); final AtomicReference<AsyncHandler<?>> bridgeRef = new AtomicReference<>(); final Single<?> underTest = AsyncHttpSingle.create(bridge -> { bridgeRef.set(bridge); return future; }, () -> handler); underTest.subscribe().unsubscribe(); verify(future).cancel(true); verifyZeroInteractions(handler); assertThat(bridgeRef.get().onStatusReceived(null), is(AsyncHandler.State.ABORT)); verify(handler).onThrowable(isA(UnsubscribedException.class)); verifyNoMoreInteractions(handler); }
public static Single<Response> create(BoundRequestBuilder builder) { requireNonNull(builder); return create(builder::execute, AsyncCompletionHandlerBase::new); }
AsyncHttpSingle { public static Single<Response> create(BoundRequestBuilder builder) { requireNonNull(builder); return create(builder::execute, AsyncCompletionHandlerBase::new); } }
AsyncHttpSingle { public static Single<Response> create(BoundRequestBuilder builder) { requireNonNull(builder); return create(builder::execute, AsyncCompletionHandlerBase::new); } private  AsyncHttpSingle(); }
AsyncHttpSingle { public static Single<Response> create(BoundRequestBuilder builder) { requireNonNull(builder); return create(builder::execute, AsyncCompletionHandlerBase::new); } private  AsyncHttpSingle(); static Single<Response> create(BoundRequestBuilder builder); static Single<Response> create(Func1<? super AsyncHandler<?>, ? extends Future<?>> requestTemplate); static Single<T> create(BoundRequestBuilder builder, Func0<? extends AsyncHandler<? extends T>> handlerSupplier); static Single<T> create(Func1<? super AsyncHandler<?>, ? extends Future<?>> requestTemplate,
                                     Func0<? extends AsyncHandler<? extends T>> handlerSupplier); }
AsyncHttpSingle { public static Single<Response> create(BoundRequestBuilder builder) { requireNonNull(builder); return create(builder::execute, AsyncCompletionHandlerBase::new); } private  AsyncHttpSingle(); static Single<Response> create(BoundRequestBuilder builder); static Single<Response> create(Func1<? super AsyncHandler<?>, ? extends Future<?>> requestTemplate); static Single<T> create(BoundRequestBuilder builder, Func0<? extends AsyncHandler<? extends T>> handlerSupplier); static Single<T> create(Func1<? super AsyncHandler<?>, ? extends Future<?>> requestTemplate,
                                     Func0<? extends AsyncHandler<? extends T>> handlerSupplier);  }