### Question:
EuroJackpotLottery extends Lottery implements Serializable { @Override public ZonedDateTime getNextDrawing(final ZonedDateTime current, final DrawingType drawingType) { ZonedDateTime baseTimestamp = current; if (baseTimestamp == null) { baseTimestamp = getDateTimeNow(); } LocalTime currentTime = baseTimestamp.toLocalTime(); ZonedDateTime drawingDate; final int weekDay = baseTimestamp.getDayOfWeek().getValue(); if ((weekDay < 5) || (weekDay == 5 && currentTime.isBefore(LocalTime.of(18,30)))) { drawingDate = baseTimestamp.plusDays(5 - weekDay).withHour(20).withMinute(0).withSecond(0).withNano(0); } else { drawingDate = baseTimestamp.plusDays(5 + (7 - weekDay)).withHour(20).withMinute(0).withSecond(0).withNano(0); } return drawingDate; } EuroJackpotLottery(); @Override List<String> getPossibleAdditionalLotteries(); @Override Jackpot getCurrentJackpot(); @Override ZonedDateTime getNextClosingDate(); @Override ZonedDateTime getNextDrawing(final ZonedDateTime current, final DrawingType drawingType); @Override String getIdentifier(); @Override Ticket createNewEmbeddedTicket(MainTicket parentTicket, String newAdditionalLotteries); @Override WinCalculator getWinCalculator(); static final String IDENTIFIER; static final int HIGHEST_SELECTABLE_NUMBER; static final int MAX_FIELDS_PER_TICKET; static final int SELECTABLE_NUMBERS; static final int HIGHEST_SELECTABLE_ADDITIONAL_NUMBER; static final int SELECTABLE_ADDITIONAL_NUMBERS; }### Answer:
@Test public void testGetNextDrawingDate() { EuroJackpotLottery euroJackpotLottery = getEuroJackpotLottery(); ZonedDateTime currentDate = ZonedDateTime.of(2017, 4, 7, 18, 0, 0, 0, ZoneId.of("Europe/Paris")); ZonedDateTime expected = ZonedDateTime.of(2017, 4, 7, 20, 0, 0, 0, ZoneId.of("Europe/Paris")); assertThat(euroJackpotLottery.getNextDrawing(currentDate, null), is(expected)); currentDate = ZonedDateTime.of(2017, 4, 7, 19, 0,0, 0, ZoneId.of("Europe/Paris")); expected = ZonedDateTime.of(2017, 4, 14, 20, 0, 0, 0, ZoneId.of("Europe/Paris")); assertThat(euroJackpotLottery.getNextDrawing(currentDate, null), is(expected)); currentDate = ZonedDateTime.of(2017, 4, 6, 16, 0,0, 0, ZoneId.of("Europe/Paris")); expected = ZonedDateTime.of(2017, 4, 7, 20, 0, 0, 0, ZoneId.of("Europe/Paris")); assertThat(euroJackpotLottery.getNextDrawing(currentDate, null), is(expected)); currentDate = ZonedDateTime.of(2017, 4, 8, 19, 0,0, 0, ZoneId.of("Europe/Paris")); expected = ZonedDateTime.of(2017, 4, 14, 20, 0,0, 0, ZoneId.of("Europe/Paris")); assertThat(euroJackpotLottery.getNextDrawing(currentDate, null), is(expected)); currentDate = ZonedDateTime.of(2017, 4, 9, 19, 0,0, 0, ZoneId.of("Europe/Paris")); expected = ZonedDateTime.of(2017, 4, 14, 20, 0,0, 0, ZoneId.of("Europe/Paris")); assertThat(euroJackpotLottery.getNextDrawing(currentDate, null), is(expected)); }