### Question:
DateTimeService { public ZonedDateTime getBeginningTimestampOfWeekUTC(ZonedDateTime zonedDateTime) { ZonedDateTime zonedDateTimeToConvert = zonedDateTime; zonedDateTimeToConvert = zonedDateTimeToConvert.toInstant().atZone(ZoneId.of("UTC")); int minusDays = zonedDateTimeToConvert.getDayOfWeek().getValue() - 1; zonedDateTimeToConvert = zonedDateTimeToConvert.minusDays(minusDays); zonedDateTimeToConvert = zonedDateTimeToConvert.withHour(0).withMinute(0).withSecond(0).withNano(0); return zonedDateTimeToConvert; }  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 getBeginningTimestampOfWeekUTC() throws Exception { DateTimeService cut = new DateTimeService(); ZonedDateTime expected = ZonedDateTime.now(ZoneId.of("UTC")).withYear(2017).withMonth(6).withDayOfMonth(12).withHour(0).withMinute(0).withSecond(0).withNano(0); ZonedDateTime current = ZonedDateTime.of(2017, 6, 14, 12, 23, 45, 800, ZoneId.of("UTC")); ZonedDateTime beginningTimestampOfWeekUTC = cut.getBeginningTimestampOfWeekUTC(current); assertThat(beginningTimestampOfWeekUTC, is(expected)); assertThat(beginningTimestampOfWeekUTC.getZone(), is(ZoneId.of("UTC"))); expected = ZonedDateTime.now(ZoneId.of("UTC")).withYear(2017).withMonth(5).withDayOfMonth(29).withHour(0).withMinute(0).withSecond(0).withNano(0); current = ZonedDateTime.of(2017, 6, 1, 12, 23, 45, 800, ZoneId.of("UTC")); beginningTimestampOfWeekUTC = cut.getBeginningTimestampOfWeekUTC(current); assertThat(beginningTimestampOfWeekUTC, is(expected)); assertThat(beginningTimestampOfWeekUTC.getZone(), is(ZoneId.of("UTC"))); }