@Ignore
@Test
public void testDelayWithMultipleSubscriptions() {

    Observable<Long> source = Observable.interval(1L, TimeUnit.SECONDS, scheduler).take(3);
    Observable<Long> delayed = source.delay(500L, TimeUnit.MILLISECONDS, scheduler);
    delayed.subscribe(observer);
    delayed.subscribe(observer2);
    InOrder inOrder = inOrder(observer);
    InOrder inOrder2 = inOrder(observer2);
    scheduler.advanceTimeTo(1499L, TimeUnit.MILLISECONDS);
    verify(observer, never()).onNext(anyLong());
    verify(observer2, never()).onNext(anyLong());
    scheduler.advanceTimeTo(1500L, TimeUnit.MILLISECONDS);
    inOrder.verify(observer, times(1)).onNext(0L);
    inOrder2.verify(observer2, times(1)).onNext(0L);
    scheduler.advanceTimeTo(2499L, TimeUnit.MILLISECONDS);
    inOrder.verify(observer, never()).onNext(anyLong());
    inOrder2.verify(observer2, never()).onNext(anyLong());
    scheduler.advanceTimeTo(2500L, TimeUnit.MILLISECONDS);
    inOrder.verify(observer, times(1)).onNext(1L);
    inOrder2.verify(observer2, times(1)).onNext(1L);
    verify(observer, never()).onCompleted();
    verify(observer2, never()).onCompleted();
    scheduler.advanceTimeTo(3500L, TimeUnit.MILLISECONDS);
    inOrder.verify(observer, times(1)).onNext(2L);
    inOrder2.verify(observer2, times(1)).onNext(2L);
    inOrder.verify(observer, never()).onNext(anyLong());
    inOrder2.verify(observer2, never()).onNext(anyLong());
    inOrder.verify(observer, times(1)).onCompleted();
    inOrder2.verify(observer2, times(1)).onCompleted();
    verify(observer, never()).onError(any(Throwable.class));
    verify(observer2, never()).onError(any(Throwable.class));
}