### Question:
StrictMultiSubscriber implements MultiSubscriber<T>, Subscription { @Override public void onCompletion() { done = true; HalfSerializer.onComplete(downstream, wip, failure); } StrictMultiSubscriber(Subscriber<? super T> downstream); @Override void request(long n); @Override void cancel(); @Override void onSubscribe(Subscription s); @Override void onItem(T t); @Override void onFailure(Throwable t); @Override void onCompletion();  }### Answer:
@Test public void testFailureReception() { AssertSubscriber<Integer> test = AssertSubscriber.create(Long.MAX_VALUE); StrictMultiSubscriber<Integer> strict = new StrictMultiSubscriber<>(test); Multi.createFrom().range(0, 5).onCompletion().failWith(new IOException("boom")) .subscribe().withSubscriber(strict); test.assertReceived(0, 1, 2, 3, 4) .assertHasFailedWith(IOException.class, "boom"); }