@Test
    @Override
    public void required_spec109_mayRejectCallsToSubscribeIfPublisherIsUnableOrUnwillingToServeThemRejectionMustTriggerOnErrorAfterOnSubscribe() throws Throwable {
        final TestEnvironment env = new TestEnvironment(200);
        whenHasErrorPublisherTest(pub -> {
            final TestEnvironment.Latch onErrorLatch = new TestEnvironment.Latch(env);
            final TestEnvironment.Latch onSubscribeLatch = new TestEnvironment.Latch(env);
            pub.subscribe(new TestEnvironment.TestSubscriber<Object>(env) {
                @Override
                public void onSubscribe(Subscription subs) {
                    onSubscribeLatch.assertOpen("Only one onSubscribe call expected");
                    onSubscribeLatch.close();
                    subs.request(Long.MAX_VALUE);
                }

                @Override
                public void onError(Throwable cause) {
                    onSubscribeLatch.assertClosed("onSubscribe should be called prior to onError always");
                    onErrorLatch.assertOpen("Only one onError call expected");
                    onErrorLatch.close();
                }
            });
            onSubscribeLatch.expectClose("Should have received onSubscribe");
            onErrorLatch.expectClose("Should have received onError");

            env.verifyNoAsyncErrorsNoDelay();
        });
    }
Rule 1.4 and 1.9 ensure a Publisher's ability to signal error to the Subscriber, however the
implementation expects such error to occur immediately after subscribing, i.e. {@code onError()} is
called after {@code onSubscribe()}.
The {@link SurroundingPublisher} however subscribes publisher and signals error after the first request,
therefore for the error to be signaled, we must make requests first.

{@link PublisherVerificationRules#optional_spec104_mustSignalOnErrorWhenFails()} and
{@link PublisherVerificationRules#required_spec109_mayRejectCallsToSubscribeIfPublisherIsUnableOrUnwillingToServeThemRejectionMustTriggerOnErrorAfterOnSubscribe()}
are overridden below to call {@link Subscription#request(long)} after subscribing.
core/src/test/java/com/linecorp/armeria/internal/common/stream/SurroundingPublisherTckTest.java