diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java index 0a120e71f6e69af9060f471df95714e3713ec328..d29313f6d3f2a57365c18b8551c74de3cb0ef705 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/bescheid/ExportBescheidService.java @@ -71,7 +71,7 @@ public class ExportBescheidService { } String getFullName(Bescheid bescheid) { - return userService.getById(bescheid.getSentInfo().getSentBy()).getFullName(); + return userService.getFullNameById(bescheid.getSentInfo().getSentBy()); } } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java index a1748976b9fc32dbc5544b090722cad3484b0117..f43865c263c7aeb21d26f89d958b6e4c56dbf6fe 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/common/user/UserService.java @@ -1,5 +1,7 @@ package de.ozgcloud.archive.common.user; +import java.util.Optional; + import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -12,14 +14,25 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor public class UserService { + private static final String SYSTEM_USER_ID_PREFIX = "system_"; + @Qualifier(ArchiveManagerConfiguration.OZGCLOUD_USER_PROFILE_SERVICE_NAME) // NOSONAR private final OzgCloudUserProfileService grpcOzgCloudUserProfileService; @Qualifier(ArchiveManagerConfiguration.USER_PROFILE_MAPPER_NAME) // NOSONAR private final UserProfileMapper mapper; - public UserProfile getById(String sentBy) { - return mapper.fromOzgUserProfile(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(sentBy))); + public Optional<UserProfile> getById(String userId) { + return Optional.of(userId).filter(id -> !id.startsWith(SYSTEM_USER_ID_PREFIX)) + .map(OzgCloudUserId::from) + .map(grpcOzgCloudUserProfileService::getById) + .map(mapper::fromOzgUserProfile); + } + + public String getFullNameById(String userId) { + // TODO (Story offen) es soll der Name des Systems geliefert werden, wenn kein + // Mensch die Aktion ausgeführt hat + return getById(userId).map(UserProfile::getFullName).orElse("automatisch"); } } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java index 3aebc7527cfcfa59f75e5a05cf058cf7f151ede7..f1d0c2ea4638917937aba71572fd95a54b252c16 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilder.java @@ -6,6 +6,7 @@ import org.apache.commons.lang3.StringUtils; import de.ozgcloud.archive.common.command.ArchiveManagerCommand; import de.ozgcloud.archive.common.command.CommandWithPrevious; +import de.ozgcloud.archive.common.user.UserProfile; import lombok.AccessLevel; import lombok.NoArgsConstructor; @@ -51,6 +52,6 @@ class AssignedUserChangeHistoryBuilder extends ChangeHistoryBuilder<AssignedUser String getAssignedUserFullNameFromCommand(ArchiveManagerCommand command) { var assignedUserId = getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, command); - return userProfileCache.getUserProfile(assignedUserId).getFullName(); + return userProfileCache.getUserProfile(assignedUserId).map(UserProfile::getFullName).orElse("automatisch"); } } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java index 5df9a38cb9a2c1daa9f29a4942bfc0382b23e7f2..0b5ed457cac691b6e0acaab103ec8ae0e9775fa5 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/historie/UserProfileCache.java @@ -2,6 +2,7 @@ package de.ozgcloud.archive.historie; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.function.Function; import de.ozgcloud.archive.common.user.UserProfile; @@ -9,18 +10,19 @@ import de.ozgcloud.common.errorhandling.TechnicalException; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; +//TODO OZG-7379 remove this cache @RequiredArgsConstructor(access = AccessLevel.PRIVATE) class UserProfileCache { - private final Function<String, UserProfile> findUserProfileForUserId; + private final Function<String, Optional<UserProfile>> findUserProfileForUserId; - private final Map<String, UserProfile> cache = new HashMap<>(); + private final Map<String, Optional<UserProfile>> cache = new HashMap<>(); - public static UserProfileCache create(Function<String, UserProfile> findUserProfileForUserId) { + public static UserProfileCache create(Function<String, Optional<UserProfile>> findUserProfileForUserId) { return new UserProfileCache(findUserProfileForUserId); } - public UserProfile getUserProfile(String userId) { + public Optional<UserProfile> getUserProfile(String userId) { if (!cache.containsKey(userId)) { findAndAddToCache(userId); } diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java index 147ca0b8104ef487ecbbd00a89f2e82553476561..ba92dd3c508a289518b8160df9de749decfcc55c 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/kommentar/ExportKommentarService.java @@ -56,7 +56,7 @@ public class ExportKommentarService { } String getAuthorFullName(Kommentar kommentar) { - return userService.getById(kommentar.getCreatedBy()).getFullName(); + return userService.getFullNameById(kommentar.getCreatedBy()); } Stream<Kommentar> getKommentare(VorgangWithEingang vorgang) { diff --git a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java index f669cd73aac394bfa47e38306119d8b293ab0ab5..5a49d6dedd8c6a47a09016f93c459c4cc6d7739f 100644 --- a/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java +++ b/archive-manager-server/src/main/java/de/ozgcloud/archive/postfach/ExportNachrichtService.java @@ -61,6 +61,6 @@ public class ExportNachrichtService { } Optional<UserProfile> getUserProfile(PostfachMail postfachMail) { - return Optional.ofNullable(postfachMail.getCreatedBy()).map(userService::getById); + return Optional.ofNullable(postfachMail.getCreatedBy()).flatMap(userService::getById); } } diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java index 0967207e31d66893252502673a65eff3d642f4f4..70d8437e7174382319fa5665d27a580cec0d2c0a 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/bescheid/ExportBescheidServiceTest.java @@ -1,6 +1,7 @@ package de.ozgcloud.archive.bescheid; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.List; @@ -17,7 +18,6 @@ import org.mockito.Spy; import de.ozgcloud.archive.bescheid.BescheidExportData.BescheidExportDataBuilder; import de.ozgcloud.archive.common.binaryfile.BinaryFileService; -import de.ozgcloud.archive.common.user.UserProfile; import de.ozgcloud.archive.common.user.UserProfileTestFactory; import de.ozgcloud.archive.common.user.UserService; import de.ozgcloud.archive.export.DokumentTypeTestFactory; @@ -388,31 +388,25 @@ class ExportBescheidServiceTest { @Nested class TestGetFullName { - private final Bescheid bescheid = BescheidTestFactory.create(); - private final UserProfile userProfile = UserProfileTestFactory.create(); - private final String expectedFullName = UserProfileTestFactory.FULLNAME; - - @BeforeEach - void mockUserService() { - when(userService.getById(SentInfoTestFactory.SENT_BY)).thenReturn(userProfile); - } @Test void shouldCallUserServiceGetbyId() { callService(); - verify(userService).getById(SentInfoTestFactory.SENT_BY); + verify(userService).getFullNameById(SentInfoTestFactory.SENT_BY); } @Test void shouldReturnOptionalOfUserProfile() { + when(userService.getFullNameById(any())).thenReturn(UserProfileTestFactory.FULLNAME); + var fullName = callService(); - assertThat(fullName).isEqualTo(expectedFullName); + assertThat(fullName).isEqualTo(UserProfileTestFactory.FULLNAME); } private String callService() { - return service.getFullName(bescheid); + return service.getFullName(BescheidTestFactory.create()); } } } diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java index e6a09868344fcb08c9d0d6c1d39dc8efaa3d90ff..3a95f87ffcfba03a8bf28caaef9906a1d647de14 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserProfileTestFactory.java @@ -1,9 +1,12 @@ package de.ozgcloud.archive.common.user; +import java.util.UUID; + import com.thedeanda.lorem.LoremIpsum; public class UserProfileTestFactory { + public static final String USER_ID = UUID.randomUUID().toString(); public static final String FIRSTNAME = LoremIpsum.getInstance().getName(); public static final String LASTNAME = LoremIpsum.getInstance().getName(); public static final String FULLNAME = String.format("%s %s", FIRSTNAME, LASTNAME); diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java index bffe6873dd2293a9874272257df61e743b24a577..6c16bed05584191d01df3d737c2516911961a527 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/common/user/UserServiceTest.java @@ -1,10 +1,9 @@ package de.ozgcloud.archive.common.user; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import java.util.UUID; - import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -21,7 +20,7 @@ class UserServiceTest { private UserService service; @Mock - private GrpcOzgCloudUserProfileService grpcOzgCloudUserProfileService; + private GrpcOzgCloudUserProfileService grpcService; @Mock private UserProfileMapper mapper; @@ -29,21 +28,20 @@ class UserServiceTest { @Nested class TestGetById { - private final String userId = UUID.randomUUID().toString(); private final OzgCloudUserProfile ozgCloudUserProfile = OzgCloudUserProfileTestFactory.create(); @Test - void shouldCallGrpcOzgCloudUserProfileService() { - callService(); + void shouldCallUserProfileService() { + service.getById(UserProfileTestFactory.USER_ID); - verify(grpcOzgCloudUserProfileService).getById(OzgCloudUserId.from(userId)); + verify(grpcService).getById(OzgCloudUserId.from(UserProfileTestFactory.USER_ID)); } @Test void shouldMap() { - when(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(userId))).thenReturn(ozgCloudUserProfile); + when(grpcService.getById(OzgCloudUserId.from(UserProfileTestFactory.USER_ID))).thenReturn(ozgCloudUserProfile); - callService(); + service.getById(UserProfileTestFactory.USER_ID); verify(mapper).fromOzgUserProfile(ozgCloudUserProfile); } @@ -51,16 +49,27 @@ class UserServiceTest { @Test void shouldRetrunMappedUserProfile() { var mappedUserProfile = UserProfileTestFactory.create(); - when(grpcOzgCloudUserProfileService.getById(OzgCloudUserId.from(userId))).thenReturn(ozgCloudUserProfile); + when(grpcService.getById(any())).thenReturn(ozgCloudUserProfile); when(mapper.fromOzgUserProfile(ozgCloudUserProfile)).thenReturn(mappedUserProfile); - var userProfile = callService(); + var userProfile = service.getById(UserProfileTestFactory.USER_ID); + + assertThat(userProfile).contains(mappedUserProfile); + } + + @Test + void shouldReturnEmptyForSystemId() { + var result = service.getById("system_test"); - assertThat(userProfile).isEqualTo(mappedUserProfile); + assertThat(result).isEmpty(); } - private UserProfile callService() { - return service.getById(userId); + @Test + void shoultNOTCallRemoteServiceForSystemId() { + service.getById("system_test"); + + verify(grpcService, never()).getById(any()); } + } } diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java index 713288dd1158fab2bf9c57877ae729b067e02681..6125711b7cc907d3221f1ebdc1b8810118a37b24 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportGrpcServiceITCase.java @@ -11,6 +11,7 @@ import java.io.IOException; import java.io.OutputStream; import java.nio.charset.StandardCharsets; import java.util.Iterator; +import java.util.Optional; import java.util.stream.Stream; import java.util.zip.ZipInputStream; @@ -149,7 +150,7 @@ class ExportGrpcServiceITCase { return null; }).when(exportFileService).writeOzgFile(any(), any()); - when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(UserProfileTestFactory.create()); + when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(Optional.of(UserProfileTestFactory.create())); } @Test diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java index 74b813c3d8ecb10ffd58e0dde14d1f25e818f977..9756006b9da3e0d313768b8151c537bdebdc706f 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/export/ExportServiceITCase.java @@ -1,11 +1,11 @@ package de.ozgcloud.archive.export; -import static de.ozgcloud.archive.common.XDomeaTestUtils.*; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.io.ByteArrayOutputStream; +import java.util.Optional; import java.util.UUID; import java.util.stream.Stream; @@ -27,9 +27,7 @@ import de.ozgcloud.archive.historie.ExportHistorieService; import de.ozgcloud.archive.kommentar.ExportKommentarService; import de.ozgcloud.archive.kommentar.KommentarsExportDataTestFactory; import de.ozgcloud.archive.postfach.ExportNachrichtService; -import de.ozgcloud.archive.postfach.PostfachMail; import de.ozgcloud.archive.postfach.PostfachMailExportDataTestFactory; -import de.ozgcloud.archive.postfach.PostfachMailTestFactory; import de.ozgcloud.archive.vorgang.VorgangService; import de.ozgcloud.archive.vorgang.VorgangWithEingang; import de.ozgcloud.archive.vorgang.VorgangWithEingangTestFactory; @@ -61,16 +59,15 @@ class ExportServiceITCase { class TestWriteExport { private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); - private final PostfachMail postfachMail = PostfachMailTestFactory.createBuilder().id(createMongoDbObjectId()).build(); private final String userId = UUID.randomUUID().toString(); @BeforeEach void setup() { doReturn(vorgang).when(vorgangService).getVorgang(VorgangWithEingangTestFactory.ID); - doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getRepresentations(vorgang); - doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getAttachments(vorgang); - doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(binaryFileService).getFiles(postfachMail.getAttachments()); - doReturn(UserProfileTestFactory.create()).when(userService).getById(userId); + doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getRepresentations(any()); + doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(exportFileService).getAttachments(any()); + doReturn(Stream.of(OzgFileTestFactory.createWithUniqueId())).when(binaryFileService).getFiles(any()); + doReturn(Optional.of(UserProfileTestFactory.create())).when(userService).getById(any()); doNothing().when(exportFileService).writeOzgFile(any(), any()); when(exportHistorieService.createHistorienProtokollInformationTypes(vorgang)).thenReturn(Stream.empty()); when(exportKommentarService.createExportData(vorgang)).thenReturn(KommentarsExportDataTestFactory.create()); diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java index a29a29cb3408fb65e9329430d76efbd7967f9679..fc4f8daaaeeea051aeaab72abebd5bda209fe397 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/AssignedUserChangeHistoryBuilderTest.java @@ -3,10 +3,12 @@ package de.ozgcloud.archive.historie; import static de.ozgcloud.archive.historie.AssignedUserChangeHistoryBuilder.*; import static de.ozgcloud.archive.historie.ChangeHistoryBuilderTest.*; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; import java.util.UUID; import org.junit.jupiter.api.BeforeEach; @@ -22,7 +24,6 @@ import de.ozgcloud.archive.common.command.ArchiveManagerCommand; import de.ozgcloud.archive.common.command.CommandTestFactory; import de.ozgcloud.archive.common.command.CommandWithPrevious; import de.ozgcloud.archive.common.command.CommandWithPreviousTestFactory; -import de.ozgcloud.archive.common.user.UserProfile; import de.ozgcloud.archive.common.user.UserProfileTestFactory; public class AssignedUserChangeHistoryBuilderTest { @@ -191,28 +192,24 @@ public class AssignedUserChangeHistoryBuilderTest { @Nested class TestGetAssignedUserFullNameFromCommand { - private static final String USER_ID = UUID.randomUUID().toString(); - private static final UserProfile USER_PROFILE = UserProfileTestFactory.create(); - private final ArchiveManagerCommand command = previousCommand; - @BeforeEach void init() { - when(builder.getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, previousCommand)).thenReturn(USER_ID.toString()); - when(userProfileCache.getUserProfile(USER_ID)).thenReturn(USER_PROFILE); + doReturn(UserProfileTestFactory.USER_ID).when(builder).getValueFromCommandBody(any(), any()); + doReturn(Optional.of(UserProfileTestFactory.create())).when(userProfileCache).getUserProfile(any()); } @Test void shouldGetUserIdFromCommand() { callBuilder(); - verify(builder).getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, command); + verify(builder).getValueFromCommandBody(BODY_PROPERTY_ASSIGNED_USER, previousCommand); } @Test void shouldGetUserProfileForUserId() { callBuilder(); - verify(userProfileCache).getUserProfile(USER_ID); + verify(userProfileCache).getUserProfile(UserProfileTestFactory.USER_ID); } @Test @@ -223,7 +220,7 @@ public class AssignedUserChangeHistoryBuilderTest { } private String callBuilder() { - return builder.getAssignedUserFullNameFromCommand(command); + return builder.getAssignedUserFullNameFromCommand(previousCommand); } } } diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java index ecc3bce58268c6eb37896b0cbaffed22aa93bc81..23532a79da9443962dc1c0c9ce54923754e263d3 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/UserProfileCacheTest.java @@ -6,6 +6,7 @@ import static org.mockito.Mockito.*; import java.util.HashMap; import java.util.Map; import java.util.Objects; +import java.util.Optional; import java.util.UUID; import java.util.function.Function; @@ -24,7 +25,7 @@ class UserProfileCacheTest { private static final UserProfile EXPECTED_USER_PROFILE = UserProfileTestFactory.create(); @Mock - private Function<String, UserProfile> findUserProfileForUserId; + private Function<String, Optional<UserProfile>> findUserProfileForUserId; @InjectMocks private UserProfileCache cache; @@ -43,7 +44,7 @@ class UserProfileCacheTest { var userProfile = cache.getUserProfile(USER_ID); - assertThat(userProfile).isEqualTo(EXPECTED_USER_PROFILE); + assertThat(userProfile).contains(EXPECTED_USER_PROFILE); } @Test @@ -52,7 +53,7 @@ class UserProfileCacheTest { cache.getUserProfile(USER_ID); - assertThat(getUserProfileFromCache()).isEqualTo(EXPECTED_USER_PROFILE); + assertThat(getUserProfileFromCache()).contains(EXPECTED_USER_PROFILE); } @Test @@ -70,7 +71,7 @@ class UserProfileCacheTest { var userProfile = cache.getUserProfile(USER_ID); - assertThat(userProfile).isEqualTo(EXPECTED_USER_PROFILE); + assertThat(userProfile).contains(EXPECTED_USER_PROFILE); } @Test @@ -82,17 +83,17 @@ class UserProfileCacheTest { } private void givenFindUserProfileForUserIdReturnsUserProfile() { - when(findUserProfileForUserId.apply(USER_ID)).thenReturn(EXPECTED_USER_PROFILE); + when(findUserProfileForUserId.apply(USER_ID)).thenReturn(Optional.of(EXPECTED_USER_PROFILE)); } private void givenUserProfileIsInCache() { - var cache = new HashMap<String, UserProfile>(); - cache.put(USER_ID, EXPECTED_USER_PROFILE); + var cache = new HashMap<String, Optional<UserProfile>>(); + cache.put(USER_ID, Optional.of(EXPECTED_USER_PROFILE)); ReflectionTestUtils.setField(this.cache, "cache", cache); } @SuppressWarnings("unchecked") - private UserProfile getUserProfileFromCache() { - return ((Map<String, UserProfile>) Objects.requireNonNull(ReflectionTestUtils.getField(cache, "cache"))).get(USER_ID); + private Optional<UserProfile> getUserProfileFromCache() { + return ((Map<String, Optional<UserProfile>>) Objects.requireNonNull(ReflectionTestUtils.getField(cache, "cache"))).get(USER_ID); } } diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java index 912d0ad90b097a5e33b10391ec8853aec971a324..82aefe85047b8af815dfe30429de5607347e4cb5 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/historie/VorgangChangeHistoryServiceTest.java @@ -7,6 +7,7 @@ import static org.mockito.Mockito.*; import java.time.LocalDateTime; import java.util.List; +import java.util.Optional; import java.util.function.Function; import java.util.stream.Stream; @@ -225,7 +226,7 @@ public class VorgangChangeHistoryServiceTest { private MockedStatic<UserProfileCache> staticUserProfileCache; @Captor - private ArgumentCaptor<Function<String, UserProfile>> userProfileCacheArgCaptor; + private ArgumentCaptor<Function<String, Optional<UserProfile>>> userProfileCacheArgCaptor; @Mock private AssignedUserChangeHistoryBuilder builder; diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java index 23c935ea6411aab4acd3d6aeee83b7291e3a8f30..708dfdc2b6eff5270d4cff2a2121f13ff177e381 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/kommentar/ExportKommentarServiceTest.java @@ -1,6 +1,7 @@ package de.ozgcloud.archive.kommentar; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import java.util.List; @@ -211,20 +212,17 @@ class ExportKommentarServiceTest { @Nested class TestGetAuthorFullName { - @BeforeEach - void init() { - when(userService.getById(KommentarTestFactory.CREATED_BY)).thenReturn(UserProfileTestFactory.create()); - } - @Test void shouldGetUser() { service.getAuthorFullName(KommentarTestFactory.create()); - verify(userService).getById(KommentarTestFactory.CREATED_BY); + verify(userService).getFullNameById(KommentarTestFactory.CREATED_BY); } @Test void shouldReturnAuthorsFullName() { + when(userService.getFullNameById(any())).thenReturn(UserProfileTestFactory.FULLNAME); + var authorFullName = service.getAuthorFullName(KommentarTestFactory.create()); assertThat(authorFullName).isEqualTo(UserProfileTestFactory.FULLNAME); diff --git a/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java b/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java index 67fd22baf0f2b64cb7333fa9eca376bdea0f3d0c..dc99119f98e05e6622fa85070f4fbe379afe2e2c 100644 --- a/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java +++ b/archive-manager-server/src/test/java/de/ozgcloud/archive/postfach/ExportNachrichtServiceTest.java @@ -314,7 +314,7 @@ class ExportNachrichtServiceTest { @BeforeEach void mockUserService() { - when(userService.getById(postfachMail.getCreatedBy())).thenReturn(expectedUserProfile); + when(userService.getById(postfachMail.getCreatedBy())).thenReturn(Optional.of(expectedUserProfile)); } @Test