### Question:
Part2ExtraExercises_Optional { @Optional @Complexity(HARD) public static Publisher<String> readFile(String filename) { throw new RuntimeException("Not implemented"); }  @Optional @Complexity(EASY) static String firstElementFromSource(Flux<String> source); @Optional @Complexity(EASY) static Publisher<String> mergeSeveralSourcesSequential(Publisher<String>... sources); @Optional @Complexity(EASY) static Publisher<String> concatSeveralSourcesOrdered(Publisher<String>... sources); @Optional @Complexity(HARD) static Publisher<String> readFile(String filename);  }### Answer:
@Test public void readFileTest() throws URISyntaxException { URI resourceUri = ClassLoader.getSystemResource("logging.properties").toURI(); StepVerifier.create(readFile(Paths.get(resourceUri).toAbsolutePath().toString())) .expectSubscription() .expectNextCount(5) .verifyComplete(); }