### Question:
ToCalendarEventTimeTransformer implements BiFunction<
        Map<String, String>, TransformerContext, CalendarEventModel.CalendarEventTime> { @Override public CalendarEventModel.CalendarEventTime apply( Map<String, String> time, TransformerContext context) { if (time == null) { return null; } String dateTimeValue = time.get("dateTime"); String timeZone = time.get("timeZone"); if (dateTimeValue == null || timeZone == null) { return null; } try { OffsetDateTime dateTime = ZonedDateTime.of(LocalDateTime.parse(dateTimeValue), ZoneId.of(timeZone)) .toOffsetDateTime(); return new CalendarEventModel.CalendarEventTime(dateTime, false); } catch (DateTimeException e) { context.problem(e.getMessage()); return null; } }  @Override CalendarEventModel.CalendarEventTime apply(
      Map<String, String> time, TransformerContext context);  }### Answer:
@Test public void testTransform() { Map<String, String> map = new HashMap<>(); map.put("dateTime", "2018-02-14T18:00:00.0000000"); map.put("timeZone", "UTC"); CalendarEventModel.CalendarEventTime time = transformer.apply(map, new TestTransformerContext()); Assert.assertEquals(18, time.getDateTime().getHour()); Assert.assertEquals(2018, time.getDateTime().getYear()); Assert.assertEquals(14, time.getDateTime().getDayOfMonth()); }