### Question:
BaseDateTimeLib { protected OffsetTime makeOffsetTime(String literal) { literal = fixDateTimeFormat(literal); if (!isTime(literal)) { return null; } if (hasZone(literal) && timeHasOffset(literal)) { return null; } if (hasZone(literal)) { if (literal.contains("@")) { int zoneIndex = literal.indexOf("@"); String zoneId = literal.substring(literal.indexOf('@') + 1); ZoneId zone = ZoneId.of(zoneId); LocalTime localTime = LocalTime.parse(literal.substring(0, zoneIndex), FEEL_TIME_FORMAT); ZonedDateTime zdt = ZonedDateTime.of(LocalDate.now(zone), localTime, zone); ZoneOffset offset = zone.getRules().getStandardOffset(zdt.toInstant()); return localTime.atOffset(offset); } else { return OffsetTime.parse(literal); } } else if (hasOffset(literal)) { return OffsetTime.parse(literal); } else { return OffsetTime.parse(literal + "Z"); } }   static final DateTimeFormatter FEEL_DATE_FORMAT; static final DateTimeFormatter FEEL_TIME_FORMAT; static final DateTimeFormatter FEEL_DATE_TIME_FORMAT; }### Answer:
@Test public void testMakeOffsetTime() { assertEquals("10:20:00Z", this.dateTimeLib.makeOffsetTime("10:20:00").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); assertEquals("10:20:00Z", this.dateTimeLib.makeOffsetTime("10:20:00Z").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); assertEquals("10:20:00+01:00", this.dateTimeLib.makeOffsetTime("10:20:00+01:00").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); assertEquals("10:20:00-01:00", this.dateTimeLib.makeOffsetTime("10:20:00-01:00").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); assertEquals("10:20:00+01:00", this.dateTimeLib.makeOffsetTime("10:20:00@Europe/Paris").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); assertEquals("10:20:00Z", this.dateTimeLib.makeOffsetTime("10:20:00@UTC").format(BaseDateTimeLib.FEEL_TIME_FORMAT)); }