diff --git a/bescheid-manager/pom.xml b/bescheid-manager/pom.xml index 7a0bae459ad6ca5dea200d31d22a56b8ebcfc789..07e45902fdd2599d9798e90a6ad1c7d4a467bfa6 100644 --- a/bescheid-manager/pom.xml +++ b/bescheid-manager/pom.xml @@ -5,7 +5,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.2.0</version> + <version>4.3.0</version> <relativePath /> </parent> diff --git a/vorgang-manager-base/pom.xml b/vorgang-manager-base/pom.xml index 1d761fc80a6fe434e581a1c7086173c68a23d140..11057a5ac33d4ea904dcc3298b8f110744168159 100644 --- a/vorgang-manager-base/pom.xml +++ b/vorgang-manager-base/pom.xml @@ -6,7 +6,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-parent</artifactId> - <version>4.2.0</version> + <version>4.3.0</version> <relativePath /> </parent> diff --git a/vorgang-manager-command/pom.xml b/vorgang-manager-command/pom.xml index a925adb4f7fd6f221cb12c537a830c964746f155..513bb76f3728cadb4d8a30e14f55c8f79959398c 100644 --- a/vorgang-manager-command/pom.xml +++ b/vorgang-manager-command/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.2.0</version> + <version>4.3.0</version> <relativePath/> </parent> diff --git a/vorgang-manager-interface/pom.xml b/vorgang-manager-interface/pom.xml index 82b9fd15bf7446722b17111e93d1edb70509123e..f5f097fbf2b5cb4fc430858578035b32ca2fe890 100644 --- a/vorgang-manager-interface/pom.xml +++ b/vorgang-manager-interface/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.2.0</version> + <version>4.3.0</version> <relativePath/> </parent> diff --git a/vorgang-manager-server/pom.xml b/vorgang-manager-server/pom.xml index 8803d73a38204b69940da7542fdf439e99fe2990..342482c610cf494cb607b9ce3bae3a1d9655ac14 100644 --- a/vorgang-manager-server/pom.xml +++ b/vorgang-manager-server/pom.xml @@ -54,7 +54,7 @@ <user-manager-interface.version>2.1.0</user-manager-interface.version> <bescheid-manager.version>1.13.0</bescheid-manager.version> - <processor-manager.version>0.4.0</processor-manager.version> + <processor-manager.version>0.4.1</processor-manager.version> <nachrichten-manager.version>2.9.0</nachrichten-manager.version> <ozgcloud-starter.version>0.10.0</ozgcloud-starter.version> <notification-manager.version>2.8.0</notification-manager.version> diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerCallContextProvider.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerCallContextProvider.java index 62811097900c5e6daee5d06831962184579d63b8..3fe994644fae00480fdda6814cae0dcbec5abb5a 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerCallContextProvider.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangManagerCallContextProvider.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Component; import de.ozgcloud.apilib.common.callcontext.CallContext; import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider; import de.ozgcloud.apilib.user.OzgCloudUserId; +import de.ozgcloud.vorgang.callcontext.CallContextUser; import de.ozgcloud.vorgang.callcontext.CurrentUserService; import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor; import lombok.RequiredArgsConstructor; @@ -45,11 +46,11 @@ public class VorgangManagerCallContextProvider implements OzgCloudCallContextPro @Override public CallContext provideContext() { var callContextBuilder = CallContext.builder().clientName(VorgangManagerClientCallContextAttachingInterceptor.VORGANG_MANAGER_CLIENT_NAME); - getUserId().ifPresent(callContextBuilder::userId); + findUserId().ifPresent(callContextBuilder::userId); return callContextBuilder.build(); } - Optional<OzgCloudUserId> getUserId() { - return currentUserService.getUser().getUserId().map(OzgCloudUserId::from); + Optional<OzgCloudUserId> findUserId() { + return currentUserService.findUser().flatMap(CallContextUser::getUserId).map(OzgCloudUserId::from); } } diff --git a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangProcessorConfiguration.java b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangProcessorConfiguration.java index 56d602a31ebc0a372e80cb958e604f85c5e7fef1..9fdab580da21c2a57572b28612b428f8a198fbd7 100644 --- a/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangProcessorConfiguration.java +++ b/vorgang-manager-server/src/main/java/de/ozgcloud/vorgang/VorgangProcessorConfiguration.java @@ -7,29 +7,15 @@ import de.ozgcloud.apilib.common.callcontext.OzgCloudCallContextProvider; import de.ozgcloud.apilib.user.GrpcOzgCloudUserProfileService; import de.ozgcloud.apilib.user.OzgCloudUserProfileService; import de.ozgcloud.apilib.user.UserProfileMapper; -import de.ozgcloud.apilib.vorgang.OzgCloudVorgangService; -import de.ozgcloud.apilib.vorgang.grpc.GrpcOzgCloudVorgangService; -import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangMapper; -import de.ozgcloud.apilib.vorgang.grpc.OzgCloudVorgangStubMapper; import de.ozgcloud.user.grpc.userprofile.UserProfileServiceGrpc.UserProfileServiceBlockingStub; -import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub; import net.devh.boot.grpc.client.inject.GrpcClient; @Configuration class VorgangProcessorConfiguration { - @GrpcClient("vorgang-manager") - private VorgangServiceBlockingStub vorgangServiceStub; - @GrpcClient("user-manager") private UserProfileServiceBlockingStub userProfileServiceGrpc; - @Bean - OzgCloudVorgangService ozgCloudVorgangService(OzgCloudVorgangMapper mapper, OzgCloudVorgangStubMapper stubMapper, - OzgCloudCallContextProvider contextProvider) { - return new GrpcOzgCloudVorgangService(vorgangServiceStub, mapper, stubMapper, contextProvider); - } - @Bean OzgCloudUserProfileService ozgCloudUserProfileService(UserProfileMapper mapper, OzgCloudCallContextProvider contextProvider) { return new GrpcOzgCloudUserProfileService(userProfileServiceGrpc, mapper, contextProvider); diff --git a/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/VorgangManagerCallContextProviderTest.java b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/VorgangManagerCallContextProviderTest.java new file mode 100644 index 0000000000000000000000000000000000000000..1ab89f43444d623ec62d3cd493d4b2155e06c276 --- /dev/null +++ b/vorgang-manager-server/src/test/java/de/ozgcloud/vorgang/VorgangManagerCallContextProviderTest.java @@ -0,0 +1,118 @@ +/* + * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ +package de.ozgcloud.vorgang; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import java.util.Optional; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; + +import de.ozgcloud.apilib.user.OzgCloudUserId; +import de.ozgcloud.vorgang.callcontext.CallContextUser; +import de.ozgcloud.vorgang.callcontext.CurrentUserService; +import de.ozgcloud.vorgang.callcontext.VorgangManagerClientCallContextAttachingInterceptor; + +class VorgangManagerCallContextProviderTest { + + private static final String USER_ID = "userId"; + + @Spy + @InjectMocks + private VorgangManagerCallContextProvider contextProvider; + + @Mock + private CurrentUserService currentUserService; + + @Nested + class TestProvideContext { + + @Test + void shouldSetClientName() { + var result = contextProvider.provideContext(); + + assertThat(result.getClientName()).isEqualTo(VorgangManagerClientCallContextAttachingInterceptor.VORGANG_MANAGER_CLIENT_NAME); + } + + @Test + void shouldCallFindUserId() { + contextProvider.provideContext(); + + verify(contextProvider).findUserId(); + } + + @Test + void shouldSetUserId() { + var userId = OzgCloudUserId.from(USER_ID); + when(contextProvider.findUserId()).thenReturn(Optional.of(userId)); + + var result = contextProvider.provideContext(); + + assertThat(result.getUserId()).isEqualTo(userId); + } + } + + @Nested + class TestFindUserId { + + @Test + void shouldCallCurrentUserService() { + contextProvider.findUserId(); + + verify(currentUserService).findUser(); + } + + @Test + void shouldReturnUserId() { + var callContextUser = CallContextUser.builder().userId(Optional.of(USER_ID)).build(); + when(currentUserService.findUser()).thenReturn(Optional.of(callContextUser)); + + var result = contextProvider.findUserId(); + + assertThat(result).contains(OzgCloudUserId.from(USER_ID)); + } + + @Test + void shouldReturnIfNoUser() { + var result = contextProvider.findUserId(); + + assertThat(result).isEmpty(); + } + + @Test + void shouldReturnIfNoUserId() { + var callContextUser = CallContextUser.builder().userId(Optional.empty()).build(); + when(currentUserService.findUser()).thenReturn(Optional.of(callContextUser)); + + var result = contextProvider.findUserId(); + + assertThat(result).isEmpty(); + } + } +} \ No newline at end of file diff --git a/vorgang-manager-utils/pom.xml b/vorgang-manager-utils/pom.xml index 538d56028531189daa140542a6e5d3a58d70ed6a..1c0254fb998531b9521cf1796c43ea40e4bf93cf 100644 --- a/vorgang-manager-utils/pom.xml +++ b/vorgang-manager-utils/pom.xml @@ -30,7 +30,7 @@ <parent> <groupId>de.ozgcloud.common</groupId> <artifactId>ozgcloud-common-dependencies</artifactId> - <version>4.2.0</version> + <version>4.3.0</version> <relativePath/> </parent>