From a96575d499f674bd186c1933bb2867f66ecf6e70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernhard=20M=C3=BCller?= Date: Thu, 23 Jul 2026 13:42:54 +0200 Subject: [PATCH] feat(community): extend PendingMembershipResponse with validFrom/validTo fields --- .../api/dto/PendingMembershipResponse.java | 5 +++- .../community/service/MembershipService.java | 4 ++- .../service/MembershipServiceTest.java | 28 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/api/dto/PendingMembershipResponse.java b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/api/dto/PendingMembershipResponse.java index 634095d..1a9a507 100644 --- a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/api/dto/PendingMembershipResponse.java +++ b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/api/dto/PendingMembershipResponse.java @@ -1,5 +1,6 @@ package at.mueller.eeg.backend.community.api.dto; +import java.time.LocalDate; import java.util.UUID; public record PendingMembershipResponse( @@ -10,5 +11,7 @@ public record PendingMembershipResponse( String atNumber, String communityName, Integer priorityLevel, - String status + String status, + LocalDate validFrom, + LocalDate validTo ) {} diff --git a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/service/MembershipService.java b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/service/MembershipService.java index 527598b..5b99652 100644 --- a/eeg_backend/src/main/java/at/mueller/eeg/backend/community/service/MembershipService.java +++ b/eeg_backend/src/main/java/at/mueller/eeg/backend/community/service/MembershipService.java @@ -168,7 +168,9 @@ public class MembershipService { m.getMeteringPoint().getAtNumber(), m.getEnergyCommunity().getName(), m.getPriorityLevel(), - m.getStatus().name() + m.getStatus().name(), + m.getValidFrom(), + m.getValidTo() ); }) .toList(); diff --git a/eeg_backend/src/test/java/at/mueller/eeg/backend/community/service/MembershipServiceTest.java b/eeg_backend/src/test/java/at/mueller/eeg/backend/community/service/MembershipServiceTest.java index 4d18e49..5d59fb2 100644 --- a/eeg_backend/src/test/java/at/mueller/eeg/backend/community/service/MembershipServiceTest.java +++ b/eeg_backend/src/test/java/at/mueller/eeg/backend/community/service/MembershipServiceTest.java @@ -246,4 +246,32 @@ class MembershipServiceTest { assertEquals("test@example.com", result.get(0).userEmail()); assertEquals("Test", result.get(0).firstName()); } + + @Test + void getPendingMemberships_setsNullValidFromAndValidTo() { + when(membershipRepository.findPendingWithDetails()).thenReturn(List.of(testMembership)); + when(userRepository.findAllById(List.of(testUserId))).thenReturn(List.of(testUser)); + + List result = membershipService.getPendingMemberships(); + + assertEquals(1, result.size()); + assertNull(result.get(0).validFrom()); + assertNull(result.get(0).validTo()); + } + + @Test + void getPendingMemberships_setsValidDatesFromEntity() { + testMembership.setStatus(MembershipStatus.ACTIVE); + testMembership.setValidFrom(LocalDate.of(2025, 1, 15)); + testMembership.setValidTo(LocalDate.of(2025, 12, 31)); + + when(membershipRepository.findPendingWithDetails()).thenReturn(List.of(testMembership)); + when(userRepository.findAllById(List.of(testUserId))).thenReturn(List.of(testUser)); + + List result = membershipService.getPendingMemberships(); + + assertEquals(1, result.size()); + assertEquals(LocalDate.of(2025, 1, 15), result.get(0).validFrom()); + assertEquals(LocalDate.of(2025, 12, 31), result.get(0).validTo()); + } }