@Test
void unwrap() {

    assertEquals("string", OptionalUtil.unwrap("string"));
    assertEquals("string", OptionalUtil.unwrap((Object) Optional.of("string")));
    assertEquals("string", OptionalUtil.unwrap(Optional.of("string")));
    assertEquals(1, OptionalUtil.unwrap(OptionalInt.of(1)));
    assertEquals(1, OptionalUtil.unwrap(OptionalLong.of(1)));
    assertEquals(1, OptionalUtil.unwrap(OptionalDouble.of(1)));
    assertEquals(true, OptionalUtil.unwrap(OptionalBoolean.of(true)));
    assertNull(OptionalUtil.unwrap((Optional<Object>) null));
    assertNull(OptionalUtil.unwrap((OptionalInt) null));
    assertNull(OptionalUtil.unwrap((OptionalLong) null));
    assertNull(OptionalUtil.unwrap((OptionalDouble) null));
    assertNull(OptionalUtil.unwrap((OptionalBoolean) null));
    assertNull(OptionalUtil.unwrap(Optional.empty()));
    assertNull(OptionalUtil.unwrap(OptionalInt.empty()));
    assertNull(OptionalUtil.unwrap(OptionalLong.empty()));
    assertNull(OptionalUtil.unwrap(OptionalDouble.empty()));
    assertNull(OptionalUtil.unwrap(OptionalBoolean.empty()));
}