### Question:
OutputVerification { public OutputVerification<TOutput> should( String reason, Matcher<? super Collection<TOutput>> matcher ) throws IOException { return this.should(output -> Assert.assertThat(reason, output, matcher)); } OutputVerification(Reader<TOutput> output); OutputVerification<TOutput> within(Long millis); OutputVerification<TOutput> within(long value, TimeUnit timeUnit); OutputVerification<TOutput> whileContinuingOnErrors(ErrorCollector collector); OutputVerification<TOutput> should(
        String reason,
        Matcher<? super Collection<TOutput>> matcher
    ); OutputVerification<TOutput> should(Consumer<Collection<TOutput>> consumer);  }### Answer:
@Test public void should_GivenMatcher_ShouldAssertReaderRecordsMatch() throws IOException { List<String> records = ImmutableList.of(UUID.randomUUID().toString()); new OutputVerification<>(new FakeReader(() -> records)) .should("contain expected records", Matchers.equalTo(records)); }