### Question:
FluentWaitElementList implements FluentWaitFunctional<FluentControl>, FluentWaitConditions<FluentWaitElementList>,
        FluentWaitConfiguration<FluentWaitElementList> { @Override public FluentWaitElementList withMessage(Supplier<String> message) { controlWait.withMessage(message); return this; } FluentWaitElementList(FluentWait controlWait, List<? extends FluentWebElement> elements); FluentConditions until(); FluentConditions untilEach(); @Override org.openqa.selenium.support.ui.FluentWait getWait(); @Override FluentWaitElementList atMost(Duration duration); @Override FluentWaitElementList pollingEvery(Duration duration); @Override FluentWaitElementList ignoreAll(Collection<Class<? extends Throwable>> types); @Override FluentWaitElementList ignoring(Class<? extends RuntimeException> exceptionType); @Override FluentWaitElementList ignoring(Class<? extends RuntimeException> firstType,
                                          Class<? extends RuntimeException> secondType); @Override void untilPredicate(Predicate<FluentControl> predicate); @Override void until(Supplier<Boolean> supplier); @Override FluentWaitElementList withMessage(Supplier<String> message); @Override boolean hasMessageDefined(); @Override FluentWaitElementList withNoDefaultsException(); @Override FluentConditions until(FluentWebElement element); @Override FluentListConditions until(List<? extends FluentWebElement> elements); @Override FluentListConditions untilEach(List<? extends FluentWebElement> elements); @Override FluentConditions untilElement(Supplier<? extends FluentWebElement> selector); @Override FluentListConditions untilElements(Supplier<? extends List<? extends FluentWebElement>> selector); @Override FluentListConditions untilEachElements(Supplier<? extends List<? extends FluentWebElement>> selector); @Override FluentWaitWindowConditions untilWindow(String windowName); @Override FluentWaitPageConditions untilPage(); @Override FluentWaitPageConditions untilPage(FluentPage page); @Override FluentWaitElementList explicitlyFor(long amount, TimeUnit timeUnit); @Deprecated T until(Function<? super FluentControl, T> function);  }### Answer:
@Test public void withMessage() { String message = "test"; ArgumentCaptor<Supplier<String>> argument = ArgumentCaptor.forClass(Supplier.class); wait.withMessage(message); Mockito.verify(fluentControlWait).withMessage(argument.capture()); assertThat(argument.getValue().get()).isEqualTo("test"); }
@Test public void withMessageSupplier() { Supplier<String> message = () -> "test"; wait.withMessage(message); Mockito.verify(fluentControlWait).withMessage(message); }