### Question:
StringUtils { public static boolean equalsIgnoreCase( Optional<String> optionalString1, Optional<String> optionalString2) { if (!optionalString1.isPresent() || !optionalString2.isPresent()) { return false; } return optionalString1 .flatMap(string1 -> optionalString2.filter(string1::equalsIgnoreCase)) .isPresent(); } private  StringUtils(); static boolean isNullOrEmpty(final String str); static boolean isNullOrWhitespace(final String str); static String replaceVariable(final String string, final String name, final String value); static boolean equalsIgnoreCase(
      Optional<String> optionalString1, Optional<String> optionalString2);  }### Answer:
@Test public void equalsIgnoreCase() { Assertions.assertTrue(StringUtils.equalsIgnoreCase(Optional.of("A"), Optional.of("A"))); Assertions.assertTrue(StringUtils.equalsIgnoreCase(Optional.of("A"), Optional.of("a"))); Assertions.assertTrue(StringUtils.equalsIgnoreCase(Optional.of("a"), Optional.of("A"))); Assertions.assertFalse(StringUtils.equalsIgnoreCase(Optional.of("a"), Optional.of("b"))); Assertions.assertFalse(StringUtils.equalsIgnoreCase(Optional.empty(), Optional.of("b"))); Assertions.assertFalse(StringUtils.equalsIgnoreCase(Optional.of("a"), Optional.empty())); Assertions.assertFalse(StringUtils.equalsIgnoreCase(Optional.empty(), Optional.empty())); }