From 8808775c46c42543a4b295f7cebd4446f3fd79df Mon Sep 17 00:00:00 2001 From: "alexander.boxhorn" Date: Wed, 26 Feb 2025 12:53:04 +0100 Subject: [PATCH] add unit test --- .../messstelle/UnauffaelligeTageReceiver.java | 9 ++++---- .../UnauffaelligeTageReceiverTest.java | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/main/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiver.java b/src/main/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiver.java index 43dc9288..5a8e4600 100644 --- a/src/main/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiver.java +++ b/src/main/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiver.java @@ -72,15 +72,16 @@ public void loadMessstellenCron() { * unauffälligen Tag gefunden wurde. */ protected List loadUnauffaelligeTageForEachMessstelle() { - final var unaufaelligerTag = unauffaelligeTageRepository.findTopByOrderByKalendertagDatumDesc(); - final var lastUnauffaelligerTag = unaufaelligerTag + final var lastUnaufaelligerTag = unauffaelligeTageRepository.findTopByOrderByKalendertagDatumDesc(); + final var dayAfterLastUnauffaelligerTag = lastUnaufaelligerTag .map(unauffaelligerTag -> unauffaelligerTag.getKalendertag().getDatum().plusDays(1)) .orElse(EARLIEST_DAY); final var yesterday = LocalDate.now().minusDays(1); final List unauffaelligeTage; - if (yesterday.isAfter(lastUnauffaelligerTag)) { + if (!yesterday.isBefore(dayAfterLastUnauffaelligerTag)) { unauffaelligeTage = Objects - .requireNonNull(messstelleApi.getUnauffaelligeTageForEachMessstelleWithHttpInfo(lastUnauffaelligerTag, yesterday).block().getBody()); + .requireNonNull( + messstelleApi.getUnauffaelligeTageForEachMessstelleWithHttpInfo(dayAfterLastUnauffaelligerTag, yesterday).block().getBody()); } else { unauffaelligeTage = List.of(); } diff --git a/src/test/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiverTest.java b/src/test/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiverTest.java index f0e6731d..be0a292b 100644 --- a/src/test/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiverTest.java +++ b/src/test/java/de/muenchen/dave/services/messstelle/UnauffaelligeTageReceiverTest.java @@ -266,6 +266,28 @@ void loadUnauffaelligeTageForEachMessstelleNoKaledertagForDatumFound() { .findByDatum(LocalDate.of(2025, 2, 3)); } + @Test + void loadUnauffaelligeTageForEachMessstelleYesterdayIsNotAfterLastUnauffaelligerTag() { + final var kalenderTagForYoungestSavedUnauffaelligerTag = new Kalendertag(); + kalenderTagForYoungestSavedUnauffaelligerTag.setDatum(LocalDate.now().minusDays(1)); + + final var youngestSavedUnauffaelligerTag = new UnauffaelligerTag(); + youngestSavedUnauffaelligerTag.setKalendertag(kalenderTagForYoungestSavedUnauffaelligerTag); + youngestSavedUnauffaelligerTag.setMstId(1234); + + Mockito.when(unauffaelligeTageRepository.findTopByOrderByKalendertagDatumDesc()).thenReturn(Optional.of(youngestSavedUnauffaelligerTag)); + + final var result = unauffaelligeTageReceiver.loadUnauffaelligeTageForEachMessstelle(); + + Assertions.assertEquals(List.of(), result); + + Mockito.verify(unauffaelligeTageRepository, Mockito.times(1)) + .findTopByOrderByKalendertagDatumDesc(); + + Mockito.verify(messstelleApi, Mockito.times(0)) + .getUnauffaelligeTageForEachMessstelleWithHttpInfo(Mockito.any(), Mockito.any()); + } + @Test void mapDto2Entity() { final var unauffaelligerTagDto = new UnauffaelligerTagDto();