@Test
public void testTee() throws Exception {

    final CompletableFuture<String> latch = new CompletableFuture<>();
    final Consumer<String> consumer = latch::complete;
    final String value = Fun.tee(consumer).apply(sentinel);
    assertTrue("future should be done: " + latch, latch.isDone());
    assertSame("value should be same as input", sentinel, value);
    assertSame("latched should be same as input", sentinel, latch.get());
}