@Test
public void testStartWhenSubscribeRunAfterFunc() {

    TestScheduler scheduler = new TestScheduler();
    Func0<String> func = new Func0<String>() {
        @Override
        public String call() {
            return "one";
        }
    };
    Observable<String> observable = Async.start(func, scheduler);
    // Run func
    scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS);
    @SuppressWarnings("unchecked")
    Observer<String> observer = mock(Observer.class);
    observable.subscribe(new TestObserver<String>(observer));
    InOrder inOrder = inOrder(observer);
    inOrder.verify(observer, times(1)).onNext("one");
    inOrder.verify(observer, times(1)).onCompleted();
    inOrder.verifyNoMoreInteractions();
}