Merge branch 'mimocode/cosmic-comet' of C:\Users\postm\.local\share\mimocode\worktree\f2606916-b9e4-4ea6-bb06-b44029fd350f\cosmic-comet
This commit is contained in:
commit
cab55c4abb
@ -316,4 +316,119 @@ class MembershipServiceTest {
|
||||
assertEquals(LocalDate.of(2025, 1, 15), result.get(0).validFrom());
|
||||
assertEquals(LocalDate.of(2025, 12, 31), result.get(0).validTo());
|
||||
}
|
||||
|
||||
@Test
|
||||
void getAllMemberships_returnsAllStatuses() {
|
||||
UUID userId2 = UUID.randomUUID();
|
||||
UUID membershipId2 = UUID.randomUUID();
|
||||
UUID membershipId3 = UUID.randomUUID();
|
||||
|
||||
User user2 = new User();
|
||||
user2.setId(userId2);
|
||||
user2.setEmail("user2@example.com");
|
||||
user2.setFirstName("Zweiter");
|
||||
user2.setLastName("Benutzer");
|
||||
|
||||
Membership pendingMembership = new Membership();
|
||||
pendingMembership.setId(testMembershipId);
|
||||
pendingMembership.setMeteringPoint(testMeteringPoint);
|
||||
pendingMembership.setEnergyCommunity(testCommunity);
|
||||
pendingMembership.setPriorityLevel(1);
|
||||
pendingMembership.setStatus(MembershipStatus.PENDING);
|
||||
|
||||
MeteringPoint mp2 = new MeteringPoint();
|
||||
mp2.setId(UUID.randomUUID());
|
||||
mp2.setUserId(userId2);
|
||||
mp2.setAtNumber("AT0010000000000000000000007654321");
|
||||
mp2.setMakoState(MakoState.ACTIVE);
|
||||
mp2.setSubstationId("UW_WAP_21_STREBERSDORF");
|
||||
mp2.setTransformerId("TRAFO_21_042_BISAMBERG");
|
||||
mp2.setGridOperatorId("Wiener Netze GmbH");
|
||||
|
||||
Membership activeMembership = new Membership();
|
||||
activeMembership.setId(membershipId2);
|
||||
activeMembership.setMeteringPoint(mp2);
|
||||
activeMembership.setEnergyCommunity(testCommunity);
|
||||
activeMembership.setPriorityLevel(1);
|
||||
activeMembership.setStatus(MembershipStatus.ACTIVE);
|
||||
activeMembership.setValidFrom(LocalDate.of(2025, 3, 1));
|
||||
|
||||
MeteringPoint mp3 = new MeteringPoint();
|
||||
mp3.setId(UUID.randomUUID());
|
||||
mp3.setUserId(testUserId);
|
||||
mp3.setAtNumber("AT0010000000000000000000001111111");
|
||||
mp3.setMakoState(MakoState.ACTIVE);
|
||||
mp3.setSubstationId("UW_WAP_21_STREBERSDORF");
|
||||
mp3.setTransformerId("TRAFO_21_042_BISAMBERG");
|
||||
mp3.setGridOperatorId("Wiener Netze GmbH");
|
||||
|
||||
Membership inactiveMembership = new Membership();
|
||||
inactiveMembership.setId(membershipId3);
|
||||
inactiveMembership.setMeteringPoint(mp3);
|
||||
inactiveMembership.setEnergyCommunity(testCommunity);
|
||||
inactiveMembership.setPriorityLevel(2);
|
||||
inactiveMembership.setStatus(MembershipStatus.INACTIVE);
|
||||
|
||||
when(membershipRepository.findAllWithDetails())
|
||||
.thenReturn(List.of(pendingMembership, activeMembership, inactiveMembership));
|
||||
when(userRepository.findAllById(List.of(testUserId, userId2)))
|
||||
.thenReturn(List.of(testUser, user2));
|
||||
|
||||
List<PendingMembershipResponse> result = membershipService.getAllMemberships();
|
||||
|
||||
assertEquals(3, result.size());
|
||||
|
||||
PendingMembershipResponse pendingResult = result.stream()
|
||||
.filter(r -> r.status().equals("PENDING")).findFirst().orElseThrow();
|
||||
assertEquals("test@example.com", pendingResult.userEmail());
|
||||
assertEquals("AT0010000000000000000000001234567", pendingResult.atNumber());
|
||||
assertNull(pendingResult.validFrom());
|
||||
|
||||
PendingMembershipResponse activeResult = result.stream()
|
||||
.filter(r -> r.status().equals("ACTIVE")).findFirst().orElseThrow();
|
||||
assertEquals("user2@example.com", activeResult.userEmail());
|
||||
assertEquals(LocalDate.of(2025, 3, 1), activeResult.validFrom());
|
||||
|
||||
PendingMembershipResponse inactiveResult = result.stream()
|
||||
.filter(r -> r.status().equals("INACTIVE")).findFirst().orElseThrow();
|
||||
assertEquals("test@example.com", inactiveResult.userEmail());
|
||||
assertEquals(2, inactiveResult.priorityLevel());
|
||||
}
|
||||
|
||||
@Test
|
||||
void getAllMemberships_collectsDistinctUserIds() {
|
||||
UUID userId2 = UUID.randomUUID();
|
||||
|
||||
User user2 = new User();
|
||||
user2.setId(userId2);
|
||||
user2.setEmail("user2@example.com");
|
||||
user2.setFirstName("Zweiter");
|
||||
user2.setLastName("Benutzer");
|
||||
|
||||
MeteringPoint mp2 = new MeteringPoint();
|
||||
mp2.setId(UUID.randomUUID());
|
||||
mp2.setUserId(userId2);
|
||||
mp2.setAtNumber("AT0010000000000000000000007654321");
|
||||
mp2.setMakoState(MakoState.ACTIVE);
|
||||
mp2.setSubstationId("UW_WAP_21_STREBERSDORF");
|
||||
mp2.setTransformerId("TRAFO_21_042_BISAMBERG");
|
||||
mp2.setGridOperatorId("Wiener Netze GmbH");
|
||||
|
||||
Membership membership2 = new Membership();
|
||||
membership2.setId(UUID.randomUUID());
|
||||
membership2.setMeteringPoint(mp2);
|
||||
membership2.setEnergyCommunity(testCommunity);
|
||||
membership2.setPriorityLevel(2);
|
||||
membership2.setStatus(MembershipStatus.ACTIVE);
|
||||
|
||||
when(membershipRepository.findAllWithDetails())
|
||||
.thenReturn(List.of(testMembership, membership2));
|
||||
when(userRepository.findAllById(List.of(testUserId, userId2)))
|
||||
.thenReturn(List.of(testUser, user2));
|
||||
|
||||
List<PendingMembershipResponse> result = membershipService.getAllMemberships();
|
||||
|
||||
assertEquals(2, result.size());
|
||||
verify(userRepository).findAllById(List.of(testUserId, userId2));
|
||||
}
|
||||
}
|
||||
|
||||
@ -142,4 +142,73 @@ class AdminIamServiceTest {
|
||||
assertEquals("approved@example.com", result.get(1).getEmail());
|
||||
verify(userRepository).findAllByOrderByCreatedAtDesc();
|
||||
}
|
||||
|
||||
@Test
|
||||
void getAllUsers_returnsSortedByCreatedAtDesc() {
|
||||
User olderUser = new User();
|
||||
olderUser.setId(UUID.randomUUID());
|
||||
olderUser.setEmail("older@example.com");
|
||||
olderUser.setStatus(RegistrationStatus.APPROVED);
|
||||
|
||||
User newerUser = new User();
|
||||
newerUser.setId(UUID.randomUUID());
|
||||
newerUser.setEmail("newer@example.com");
|
||||
newerUser.setStatus(RegistrationStatus.PENDING);
|
||||
|
||||
User newestUser = new User();
|
||||
newestUser.setId(UUID.randomUUID());
|
||||
newestUser.setEmail("newest@example.com");
|
||||
newestUser.setStatus(RegistrationStatus.REJECTED);
|
||||
|
||||
when(userRepository.findAllByOrderByCreatedAtDesc())
|
||||
.thenReturn(List.of(newestUser, newerUser, olderUser));
|
||||
|
||||
List<User> result = adminIamService.getAllUsers();
|
||||
|
||||
assertEquals(3, result.size());
|
||||
assertEquals("newest@example.com", result.get(0).getEmail());
|
||||
assertEquals("newer@example.com", result.get(1).getEmail());
|
||||
assertEquals("older@example.com", result.get(2).getEmail());
|
||||
assertEquals(RegistrationStatus.REJECTED, result.get(0).getStatus());
|
||||
assertEquals(RegistrationStatus.PENDING, result.get(1).getStatus());
|
||||
assertEquals(RegistrationStatus.APPROVED, result.get(2).getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void getAllUsers_returnsEmptyList() {
|
||||
when(userRepository.findAllByOrderByCreatedAtDesc()).thenReturn(List.of());
|
||||
|
||||
List<User> result = adminIamService.getAllUsers();
|
||||
|
||||
assertTrue(result.isEmpty());
|
||||
verify(userRepository).findAllByOrderByCreatedAtDesc();
|
||||
}
|
||||
|
||||
@Test
|
||||
void getAllUsers_includesAllRegistrationStatuses() {
|
||||
User pendingUser = new User();
|
||||
pendingUser.setId(UUID.randomUUID());
|
||||
pendingUser.setEmail("pending@example.com");
|
||||
pendingUser.setStatus(RegistrationStatus.PENDING);
|
||||
|
||||
User approvedUser = new User();
|
||||
approvedUser.setId(UUID.randomUUID());
|
||||
approvedUser.setEmail("approved@example.com");
|
||||
approvedUser.setStatus(RegistrationStatus.APPROVED);
|
||||
|
||||
User rejectedUser = new User();
|
||||
rejectedUser.setId(UUID.randomUUID());
|
||||
rejectedUser.setEmail("rejected@example.com");
|
||||
rejectedUser.setStatus(RegistrationStatus.REJECTED);
|
||||
|
||||
when(userRepository.findAllByOrderByCreatedAtDesc())
|
||||
.thenReturn(List.of(pendingUser, approvedUser, rejectedUser));
|
||||
|
||||
List<User> result = adminIamService.getAllUsers();
|
||||
|
||||
assertEquals(3, result.size());
|
||||
assertTrue(result.stream().anyMatch(u -> u.getStatus() == RegistrationStatus.PENDING));
|
||||
assertTrue(result.stream().anyMatch(u -> u.getStatus() == RegistrationStatus.APPROVED));
|
||||
assertTrue(result.stream().anyMatch(u -> u.getStatus() == RegistrationStatus.REJECTED));
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user