/** * @see {@link Goro#schedule(Callable)} */ public <T> Async<T> schedule(final Callable<T> task) { return schedule(Goro.DEFAULT_QUEUE, task); }
@Before public void init() { goro = mock(Goro.class); doReturn(mock(ObservableFuture.class)).when(goro).schedule(anyString(), any(Callable.class)); asyncGoro = new AsyncGoro(goro); }
/** * @see Goro#schedule(Callable) */ public <T> Async<T> schedule(final Callable<T> task) { return schedule(Goro.DEFAULT_QUEUE, task); }
@SuppressWarnings("unchecked") @Test public void cancelShouldMakeSubscribeNoOp() { Async<?> async = asyncGoro.schedule("1", mock(Callable.class)); async.cancel(); async.subscribe(mock(AsyncObserver.class)); verify(goro, never()).schedule(anyString(), any(Callable.class)); }
@SuppressWarnings("unchecked") @Test public void firstSubscribeShouldCallSchedule() { Callable<?> task = mock(Callable.class); Async<?> async = asyncGoro.schedule("1", task); verify(goro, never()).schedule(anyString(), any(Callable.class)); async.subscribe(mock(AsyncObserver.class)); verify(goro).schedule("1", task); async.subscribe(mock(AsyncObserver.class)); verify(goro, times(1 /* not 2 */)).schedule(anyString(), any(Callable.class)); }