### Question:
Part4ExtraBackpressure_Optional { @Complexity(MEDIUM) public static Publisher<String> handleBackpressureWithBuffering(StringEventPublisher stringEventPublisher) { throw new RuntimeException("Not implemented"); }  @Complexity(MEDIUM) static Publisher<String> handleBackpressureWithBuffering(StringEventPublisher stringEventPublisher); @Optional @Complexity(MEDIUM) static void dynamicDemand(Flux<String> source, CountDownLatch countDownOnComplete);  }### Answer:
@Test public void handleBackpressureWithBufferingTest() { TestStringEventPublisher stringEmitter = new TestStringEventPublisher(); StepVerifier .create( handleBackpressureWithBuffering(stringEmitter), 0 ) .expectSubscription() .then(() -> stringEmitter.consumer.accept("A")) .then(() -> stringEmitter.consumer.accept("B")) .then(() -> stringEmitter.consumer.accept("C")) .then(() -> stringEmitter.consumer.accept("D")) .then(() -> stringEmitter.consumer.accept("E")) .then(() -> stringEmitter.consumer.accept("F")) .expectNoEvent(Duration.ofMillis(300)) .thenRequest(6) .expectNext("A", "B", "C", "D", "E", "F") .thenCancel() .verify(); }