Merge branch 'mimocode/misty-squid'
This commit is contained in:
commit
0092301ef4
@ -143,6 +143,37 @@ public class MembershipService {
|
|||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(readOnly = true)
|
||||||
|
public List<PendingMembershipResponse> getAllMemberships() {
|
||||||
|
List<Membership> allMemberships = membershipRepository.findAllWithDetails();
|
||||||
|
|
||||||
|
List<UUID> userIds = allMemberships.stream()
|
||||||
|
.map(m -> m.getMeteringPoint().getUserId())
|
||||||
|
.distinct()
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
Map<UUID, User> usersById = userRepository.findAllById(userIds).stream()
|
||||||
|
.collect(Collectors.toMap(User::getId, user -> user));
|
||||||
|
|
||||||
|
return allMemberships.stream()
|
||||||
|
.map(m -> {
|
||||||
|
User user = usersById.get(m.getMeteringPoint().getUserId());
|
||||||
|
return new PendingMembershipResponse(
|
||||||
|
m.getId(),
|
||||||
|
user != null ? user.getEmail() : "unknown",
|
||||||
|
user != null ? user.getFirstName() : "unknown",
|
||||||
|
user != null ? user.getLastName() : "unknown",
|
||||||
|
m.getMeteringPoint().getAtNumber(),
|
||||||
|
m.getEnergyCommunity().getName(),
|
||||||
|
m.getPriorityLevel(),
|
||||||
|
m.getStatus().name(),
|
||||||
|
m.getValidFrom(),
|
||||||
|
m.getValidTo()
|
||||||
|
);
|
||||||
|
})
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(readOnly = true)
|
@Transactional(readOnly = true)
|
||||||
public List<PendingMembershipResponse> getPendingMemberships() {
|
public List<PendingMembershipResponse> getPendingMemberships() {
|
||||||
List<Membership> pendingMemberships = membershipRepository.findPendingWithDetails();
|
List<Membership> pendingMemberships = membershipRepository.findPendingWithDetails();
|
||||||
|
|||||||
@ -259,6 +259,48 @@ class MembershipServiceTest {
|
|||||||
assertNull(result.get(0).validTo());
|
assertNull(result.get(0).validTo());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getAllMemberships_returnsAllMemberships() {
|
||||||
|
when(membershipRepository.findAllWithDetails()).thenReturn(List.of(testMembership));
|
||||||
|
when(userRepository.findAllById(List.of(testUserId))).thenReturn(List.of(testUser));
|
||||||
|
|
||||||
|
List<PendingMembershipResponse> result = membershipService.getAllMemberships();
|
||||||
|
|
||||||
|
assertEquals(1, result.size());
|
||||||
|
assertEquals(testMembershipId, result.get(0).id());
|
||||||
|
assertEquals("test@example.com", result.get(0).userEmail());
|
||||||
|
assertEquals("Test", result.get(0).firstName());
|
||||||
|
assertEquals("PENDING", result.get(0).status());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getAllMemberships_returnsEmptyListWhenNoMemberships() {
|
||||||
|
when(membershipRepository.findAllWithDetails()).thenReturn(List.of());
|
||||||
|
|
||||||
|
List<PendingMembershipResponse> result = membershipService.getAllMemberships();
|
||||||
|
|
||||||
|
assertTrue(result.isEmpty());
|
||||||
|
verify(userRepository).findAllById(List.of());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void getAllMemberships_handlesMissingUser() {
|
||||||
|
Membership membershipWithUnknownUser = new Membership();
|
||||||
|
membershipWithUnknownUser.setId(UUID.randomUUID());
|
||||||
|
membershipWithUnknownUser.setMeteringPoint(testMeteringPoint);
|
||||||
|
membershipWithUnknownUser.setEnergyCommunity(testCommunity);
|
||||||
|
membershipWithUnknownUser.setPriorityLevel(1);
|
||||||
|
membershipWithUnknownUser.setStatus(MembershipStatus.ACTIVE);
|
||||||
|
|
||||||
|
when(membershipRepository.findAllWithDetails()).thenReturn(List.of(membershipWithUnknownUser));
|
||||||
|
when(userRepository.findAllById(List.of(testUserId))).thenReturn(List.of());
|
||||||
|
|
||||||
|
List<PendingMembershipResponse> result = membershipService.getAllMemberships();
|
||||||
|
|
||||||
|
assertEquals(1, result.size());
|
||||||
|
assertEquals("unknown", result.get(0).userEmail());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void getPendingMemberships_setsValidDatesFromEntity() {
|
void getPendingMemberships_setsValidDatesFromEntity() {
|
||||||
testMembership.setStatus(MembershipStatus.ACTIVE);
|
testMembership.setStatus(MembershipStatus.ACTIVE);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user