@Override
  public final T apply(@Nullable F input) {
    checkArgument(input != null, "Null inputs are not allowed in this function");
    return doApply(input);
  }
@Test
  public void fail_if_null_input() {
    try {
      underTest.apply(null);
      fail();
    } catch (IllegalArgumentException e) {
      assertThat(e).hasMessage("Null inputs are not allowed in this function");
    }
  }