### Question:
DateTimeFormatterUtil { public static LocalDate stringToLocalDate(String value, String dateFormat, ZoneId defaultTimeZone) { if (StringUtils.isNullOrEmpty(dateFormat)) { logger.info("Unable to parse {} as Date type due to invalid dateformat", value); return null; } Date dateTransformedValue = stringToDate(value, dateFormat); if (dateTransformedValue == null) { return null; } return dateTransformedValue.toInstant() .atZone(defaultTimeZone) .toLocalDate(); } private  DateTimeFormatterUtil(); static LocalDate stringToLocalDate(String value, String dateFormat,
                                              ZoneId defaultTimeZone); static Object stringToZonedDateTime(String value, String dateFormat, ZoneId defaultTimeZone); static Object stringToDateTime(String value, String dateFormat, ZoneId defaultTimeZone); static LocalDate bigDecimalToLocalDate(BigDecimal value, ZoneId defaultTimeZone); static LocalDateTime bigDecimalToLocalDateTime(BigDecimal value, ZoneId defaultTimeZone); static String inferDateTimeFormat(String value); static long packDateTimeWithZone(ZonedDateTime zdt); static long packDateTimeWithZone(long millisUtc, String zoneId); static ZonedDateTime constructZonedDateTime(long dateTimeWithTimeZone);  }### Answer:
@Test public void stringToLocalDateTest() { LocalDate expected = LocalDate.of(2020, 02, 27); LocalDate actual = DateTimeFormatterUtil.stringToLocalDate("27022020", "ddMMyyyy", DEFAULT_TIME_ZONE); assertEquals(expected, actual); assertNull(DateTimeFormatterUtil.stringToLocalDate("2020-02-27", null, DEFAULT_TIME_ZONE)); assertNull(DateTimeFormatterUtil.stringToLocalDate("27--02-2020", "ddMMyyyy", DEFAULT_TIME_ZONE)); }
@Test public void stringToLocalDateTestCustomerConfiguredFormatFail() { assertNull(DateTimeFormatterUtil.stringToLocalDate("27--02-2020", "ddMMyyyy", DEFAULT_TIME_ZONE)); }