diff --git a/gradle.properties b/gradle.properties index 7b6cf32..7be3162 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1 +1 @@ -appVersion=0.2.1 +appVersion=0.2.2 diff --git a/report/src/main/java/com/nalssilog/report/application/ReportService.java b/report/src/main/java/com/nalssilog/report/application/ReportService.java index 06f3a86..a78b451 100644 --- a/report/src/main/java/com/nalssilog/report/application/ReportService.java +++ b/report/src/main/java/com/nalssilog/report/application/ReportService.java @@ -93,7 +93,7 @@ public CursorPage list(Long locationId, String cursor, ReportAct .toList()); List items = page.stream() - .map(data -> ReportResponse.of(data, location, authors.get(data.authorMemberId()), + .map(data -> ReportResponse.of(data, location, resolveAuthor(data, authors), counts.getOrDefault(data.id(), 0L), thanked.contains(data.id()), isAuthor(data, ownershipActors), @@ -219,6 +219,17 @@ private AuthorInfo resolveAuthor(ReportData data) { return memberClient.findActiveAuthor(data.authorMemberId()).orElse(null); } + private AuthorInfo resolveAuthor( + ReportData data, + Map authors + ) { + if (data.authorType() != ActorType.MEMBER) { + return null; + } + + return authors.get(data.authorMemberId()); + } + private boolean isAuthor(WeatherReport report, ReportActor actor) { if (report.getAuthorType() != actor.type()) { return false; diff --git a/report/src/test/java/com/nalssilog/report/application/ReportServiceTest.java b/report/src/test/java/com/nalssilog/report/application/ReportServiceTest.java index bb7fd3e..23285bb 100644 --- a/report/src/test/java/com/nalssilog/report/application/ReportServiceTest.java +++ b/report/src/test/java/com/nalssilog/report/application/ReportServiceTest.java @@ -139,6 +139,7 @@ void listIncludesOwnershipCalculatedFromAllAvailableActors() { when(locationClient.getLocation(1L)).thenReturn(location()); when(thanksRepository.countByReportIds(List.of(10L))).thenReturn(Map.of()); when(thanksRepository.thankedReportIds(List.of(10L), ReportActor.member(1L))).thenReturn(Set.of()); + when(memberClient.findActiveAuthors(List.of())).thenReturn(Map.of()); CursorPage response = service.list( 1L, @@ -148,8 +149,10 @@ void listIncludesOwnershipCalculatedFromAllAvailableActors() { ); assertThat(response.items()).singleElement() - .extracting(ReportResponse::isMine) - .isEqualTo(true); + .satisfies(item -> { + assertThat(item.isMine()).isTrue(); + assertThat(item.author().type()).isEqualTo(ActorType.ANONYMOUS); + }); } @Test