### Question:
DateTimeService { public ZonedDateTime getFutureDate(ZonedDateTime timestamp, int numberOfDays, boolean endOfDay) { ZonedDateTime futureDateTime = timestamp.plusDays(numberOfDays); if (endOfDay) { futureDateTime = futureDateTime.withHour(MAX_HOUR).withMinute(MAX_MINUTE).withSecond(MAX_SECOND) .with(MILLI_OF_SECOND, 999).withNano(MAX_MILLISECOND); } return futureDateTime; }  ZonedDateTime getFutureDate(ZonedDateTime timestamp, int numberOfDays, boolean endOfDay); ZonedDateTime getDateTimeNowEurope(); ZonedDateTime getDateTimeNowUTC(); ZonedDateTime getBeginningTimestampOfMonthUTC(final ZonedDateTime zonedDateTime); ZonedDateTime getEndingTimestampOfMonthUTC(ZonedDateTime zonedDateTime); ZonedDateTime getBeginningTimestampOfWeekUTC(ZonedDateTime zonedDateTime); ZonedDateTime getEndingTimestampOfWeekUTC(ZonedDateTime zonedDateTime); ZonedDateTime getBeginningTimestampOfDayUTC(ZonedDateTime zonedDateTime); ZonedDateTime getEndingTimestampOfDayUTC(ZonedDateTime zonedDateTime); ZonedDateTime convertDateToZonedDateTimeEurope(Date date); ZonedDateTime getBeginningOfCurrentYear(); ZonedDateTime getEndingOfCurrentYear(); String getMonthNameFor(ZonedDateTime dateTime);  }### Answer:
@Test public void getFutureDate() { DateTimeService cut = new DateTimeService(); final ZonedDateTime currentTimestamp = ZonedDateTime.of(2017, 2, 18, 0, 0, 0, 0, ZoneId.of("UTC")); final ZonedDateTime expectedNextDay = ZonedDateTime.of(2017, 2, 19, 0, 0, 0, 0, ZoneId.of("UTC")); final ZonedDateTime expectedEndOfNextDay = ZonedDateTime.of(2017, 2, 19, 23, 59, 59, 999, ZoneId.of("UTC")); assertThat(cut.getFutureDate(currentTimestamp, 1, false), is(expectedNextDay)); assertThat(cut.getFutureDate(currentTimestamp, 1, true), is(expectedEndOfNextDay)); }