### Question:
BaseDateTimeLib { protected ZonedDateTime makeZonedDateTime(String literal) { if (StringUtils.isBlank(literal)) { return null; } literal = fixDateTimeFormat(literal); if (hasZone(literal)) { return ZonedDateTime.parse(literal, FEEL_DATE_TIME_FORMAT); } else if (hasOffset(literal)) { return ZonedDateTime.parse(literal, FEEL_DATE_TIME_FORMAT); } else if (hasTime(literal)) { return ZonedDateTime.parse(literal + 'Z', FEEL_DATE_TIME_FORMAT); } else { LocalDate localDate = LocalDate.parse(literal, FEEL_DATE_FORMAT); return localDate.atStartOfDay(UTC); } }   static final DateTimeFormatter FEEL_DATE_FORMAT; static final DateTimeFormatter FEEL_TIME_FORMAT; static final DateTimeFormatter FEEL_DATE_TIME_FORMAT; }### Answer:
@Test public void testMakeDateTime() { assertEquals("2017-08-10T00:00:00Z@UTC", this.dateTimeLib.makeZonedDateTime("2017-08-10").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("9999-01-01T00:00:00Z@UTC", this.dateTimeLib.makeZonedDateTime("9999-01-01").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("999999999-01-01T00:00:00Z@UTC", this.dateTimeLib.makeZonedDateTime("999999999-01-01").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("-999999999-01-01T00:00:00Z@UTC", this.dateTimeLib.makeZonedDateTime("-999999999-01-01").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00Z", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00Z", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00Z").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00+01:00", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00+01:00").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00-01:00", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00-01:00").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00+02:00@Europe/Paris", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00@Europe/Paris").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-02-10T10:20:00+01:00@Europe/Paris", this.dateTimeLib.makeZonedDateTime("2017-02-10T10:20:00@Europe/Paris").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); assertEquals("2017-08-10T10:20:00Z@UTC", this.dateTimeLib.makeZonedDateTime("2017-08-10T10:20:00@UTC").format(BaseDateTimeLib.FEEL_DATE_TIME_FORMAT)); }