@Test
public void testInitializerThrows() {

  String message = "Exception message";
  LazyInit<Object> throwing = LazyInit.of(() -> {
    throw new UnsupportedOperationException(message);
  });
  RuntimeException thrown = assertThrows(RuntimeException.class, throwing::get);
  Throwable cause = thrown.getCause();
  assertNotNull(cause);
  assertAll(
      () -> assertEquals(UnsupportedOperationException.class, cause.getClass()),
      () -> assertEquals(message, cause.getMessage())
  );
}