### Question:
SerializedObserver implements Observer<T>, Disposable { @Override public void dispose() { s.dispose(); } SerializedObserver(@NonNull Observer<? super T> actual);  SerializedObserver(@NonNull Observer<? super T> actual, boolean delayError); @Override void onSubscribe(@NonNull Disposable s); @Override void dispose(); @Override boolean isDisposed(); @Override void onNext(@NonNull T t); @Override void onError(@NonNull Throwable t); @Override void onComplete();  }### Answer:
@Test public void dispose() { TestObserver<Integer> to = new TestObserver<Integer>(); SerializedObserver<Integer> so = new SerializedObserver<Integer>(to); Disposable d = Disposables.empty(); so.onSubscribe(d); assertFalse(so.isDisposed()); to.cancel(); assertTrue(so.isDisposed()); assertTrue(d.isDisposed()); }