@Test
void composeToEnum() {

    final ToEnum<String, TestEnum> toEnum = ToEnum.of(TestEnum.class, TestEnum::valueOf);
    final ComposeToEnum<String, String, TestEnum, ToEnum<String, TestEnum>> composeToEnum =
            (ComposeToEnum<String, String, TestEnum, ToEnum<String, TestEnum>>)
                    ComposedUtil.composeToEnum(Function.identity(), toEnum);
    assertEquals(TestEnum.class, composeToEnum.enumClass());
    assertNotNull(composeToEnum.firstStep());
    assertNotNull(composeToEnum.secondStep());
    assertNull(composeToEnum.apply(null));
    assertNotNull(composeToEnum.apply("VALUE"));
}