diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/UserProfileUrlProvider.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/UserProfileUrlProvider.java deleted file mode 100644 index 100dd420eb21777a28dae8e70688493017a73756..0000000000000000000000000000000000000000 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/UserProfileUrlProvider.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (C) 2023 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.alfa.common; - -import java.util.Objects; - -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; - -import com.google.common.base.Preconditions; - -@Component -public class UserProfileUrlProvider implements ApplicationContextAware { - // TODO auf javax.validation umstellen - private static final String ERROR_MESSAGE = "Key %s missing, please add it to the application.yml"; - // TODO applicationContext darf nicht static abgelegt werden - es sollte möglich - // sein, dass eine andere Konfiguration in der jvm läuft. - private static ApplicationContext applicationContext; - static final String URL_ROOT_KEY = "ozgcloud.user-manager.url"; - static final String USER_PROFILES_TEMPLATE_KEY = "ozgcloud.user-manager.profile-template"; - - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - UserProfileUrlProvider.setSpringContext(applicationContext); - } - - private static void setSpringContext(ApplicationContext context) { - applicationContext = context; - } - - public static boolean isConfigured() { - return Objects.nonNull(applicationContext.getEnvironment().getProperty(URL_ROOT_KEY)) - && Objects.nonNull(applicationContext.getEnvironment().getProperty(USER_PROFILES_TEMPLATE_KEY)); - } - - public static String getUrl(Object val) { - // TODO Abhängingkeit zu com.google.common ausbauen - Preconditions.checkNotNull(applicationContext, "ApplicationContext not initialized"); - - // TODO parameter lieber injezieren und validation verwenden - var rootUrl = applicationContext.getEnvironment().getProperty(URL_ROOT_KEY); - Preconditions.checkNotNull(rootUrl, ERROR_MESSAGE, URL_ROOT_KEY); - - var template = applicationContext.getEnvironment().getProperty(USER_PROFILES_TEMPLATE_KEY); - Preconditions.checkNotNull(template, ERROR_MESSAGE, USER_PROFILES_TEMPLATE_KEY); - - // TODO UriComponent Builder verwenden - var profilesUrl = rootUrl + template; - return String.format(profilesUrl, val); - } -} diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java index 3b6facda1bdca1ad3dd53fa54f250e4df2cbda93..865d83fb59e4bad69534ca0a5ef52a2e686ef193 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/VorgangController.java @@ -25,8 +25,9 @@ package de.ozgcloud.alfa.vorgang; import java.util.Optional; +import jakarta.servlet.http.HttpServletResponse; + import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.RepresentationModel; import org.springframework.http.HttpStatus; @@ -44,10 +45,11 @@ import de.ozgcloud.alfa.common.clientattribute.ClientAttributeService; import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.statistic.StatisticController; import de.ozgcloud.alfa.vorgang.Vorgang.VorgangStatus; -import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; @RestController @RequestMapping(VorgangController.PATH) +@RequiredArgsConstructor public class VorgangController { static final String PATH = "/api/vorgangs"; // NOSONAR @@ -62,16 +64,12 @@ public class VorgangController { public static final String PARAM_NEXT_WIEDERVORLAGE_FRIST_EXISTS = "exists"; public static final String PARAM_NACHRICHTEN_UNGELESENE = "ungelesene"; - @Autowired - private VorgangService vorgangService; - @Autowired - private VorgangModelAssembler modelAssembler; + private final VorgangService vorgangService; + private final VorgangModelAssembler modelAssembler; - @Autowired - private ClientAttributeService clientAttributeService; + private final ClientAttributeService clientAttributeService; - @Autowired - private StatisticController statisticController; + private final StatisticController statisticController; @GetMapping(params = { PARAM_PAGE, PARAM_LIMIT }) public RepresentationModel<EntityModel<EnhancedVorgang>> getAll(@RequestParam int page, @RequestParam Integer limit) { diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/aktenzeichen/AktenzeichenModelProcessorTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/aktenzeichen/AktenzeichenModelProcessorTest.java index 6c0447d5e009e8c7bf894a1ce93dc464b075f834..db2df608d44e0e6fefafdc20604cf2a1e868d084 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/aktenzeichen/AktenzeichenModelProcessorTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/aktenzeichen/AktenzeichenModelProcessorTest.java @@ -36,7 +36,6 @@ import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.Link; import org.springframework.hateoas.UriTemplate; -import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.command.CommandController; import de.ozgcloud.alfa.vorgang.Vorgang; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; @@ -45,8 +44,6 @@ import de.ozgcloud.alfa.vorgang.VorgangWithEingangTestFactory; class AktenzeichenModelProcessorTest { - private final UserProfileUrlProvider urlProvider = new UserProfileUrlProvider(); - @InjectMocks private AktenzeichenModelProcessor processor; diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/UserProfileUrlProviderTestFactory.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/UserProfileUrlProviderTestFactory.java deleted file mode 100644 index 9498db2b673db8e3d7e171e35a6c87871913aded..0000000000000000000000000000000000000000 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/UserProfileUrlProviderTestFactory.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (C) 2023 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.alfa.common; - -import static org.mockito.Mockito.*; - -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; - -public class UserProfileUrlProviderTestFactory { - public static final String ROOT_URL = "https://localhost"; - public static final String USER_PROFILES_API_PATH = "/api/userProfiles/"; - public static final String OZGCLOUD_USER_MANAGER_PROFILE_TEMPLATE = "ozgcloud.user-manager.profile-template"; - public static final String OZGCLOUD_USER_MANAGER_URL = "ozgcloud.user-manager.url"; - - public static void initUserProfileUrlProvider(UserProfileUrlProvider urlProvider) { - ApplicationContext context = mock(ApplicationContext.class); - Environment environment = mock(Environment.class); - when(environment.getProperty(OZGCLOUD_USER_MANAGER_URL)).thenReturn(ROOT_URL); - when(environment.getProperty(OZGCLOUD_USER_MANAGER_PROFILE_TEMPLATE)).thenReturn(USER_PROFILES_API_PATH + "%s"); - when(context.getEnvironment()).thenReturn(environment); - urlProvider.setApplicationContext(context); - } -} diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java index 01567b0ff4b2aadac73038fcec78b3ba327a479c..cdc84e3c2bb10c6620376542e304399ff8ea0cfb 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/common/command/CommandModelAssemblerTest.java @@ -27,9 +27,7 @@ import static de.ozgcloud.alfa.common.command.CommandModelAssembler.*; import static de.ozgcloud.alfa.common.command.CommandTestFactory.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.*; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -38,13 +36,10 @@ import org.junit.jupiter.params.provider.EnumSource; import org.junit.jupiter.params.provider.EnumSource.Mode; import org.junit.jupiter.params.provider.ValueSource; import org.mockito.InjectMocks; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; -import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; class CommandModelAssemblerTest { @@ -54,13 +49,6 @@ class CommandModelAssemblerTest { @InjectMocks private CommandModelAssembler modelAssembler; - @BeforeEach - void init() { - var applicationContext = mock(ApplicationContext.class); - lenient().when(applicationContext.getEnvironment()).thenReturn(mock(Environment.class)); - new UserProfileUrlProvider().setApplicationContext(applicationContext); - } - @Test void shouldHaveSelfLink() { var model = modelAssembler.toModel(CommandTestFactory.create()); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java index 4122969ffbce6e408d19fe31ec962b7f94fe886c..cd840fb170494f5fdb61121b9623210ea834d550 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/historie/HistorieModelAssemblerTest.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.alfa.historie; -import static de.ozgcloud.alfa.common.UserProfileUrlProviderTestFactory.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -121,6 +120,9 @@ class HistorieModelAssemblerTest { @Nested class TestCreatedByLink { + private static final String ROOT_URL = LoremIpsum.getInstance().getUrl(); + private static final String USER_PROFILES_API_PATH = "/api/user-profiles/"; + @Mock private UserManagerUrlProvider userManagerUrlProvider; diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java index db7c591bad74ecd8aa794161c3c4c38ba89ba561..61309f2595749b072aa7b64c8f2df88b0a3e5dfd 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/kommentar/KommentarModelAssemblerTest.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.alfa.kommentar; -import static de.ozgcloud.alfa.common.UserProfileUrlProviderTestFactory.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -41,8 +40,9 @@ import org.springframework.hateoas.IanaLinkRelations; import org.springframework.hateoas.Link; import org.springframework.hateoas.server.EntityLinks; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.alfa.common.LinkedResourceTestUtils; -import de.ozgcloud.alfa.common.UserProfileUrlProviderTestFactory; import de.ozgcloud.alfa.common.user.UserManagerUrlProvider; import de.ozgcloud.alfa.vorgang.VorgangController; import de.ozgcloud.alfa.vorgang.VorgangHeaderTestFactory; @@ -53,8 +53,7 @@ class KommentarModelAssemblerTest { private static final String PATH = KommentarController.KOMMENTAR_PATH + "/"; private static final String REL_CREATED_BY = "createdBy"; - private static final String USER_MANAGER_URL = UserProfileUrlProviderTestFactory.ROOT_URL - + UserProfileUrlProviderTestFactory.USER_PROFILES_API_PATH; + private static final String USER_MANAGER_URL = LoremIpsum.getInstance().getUrl(); @Spy @InjectMocks @@ -130,7 +129,7 @@ class KommentarModelAssemblerTest { @Test void shouldHaveCreatedByLink() { - when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(ROOT_URL + USER_PROFILES_API_PATH + "%s"); + when(userManagerUrlProvider.getUserProfileTemplate()).thenReturn(USER_MANAGER_URL + "%s"); var model = LinkedResourceTestUtils.processUserProfileResource(buildModel(), userManagerUrlProvider); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungControllerTest.java index a1d67f14c2f6c985fb1c0613cf00c71c86030202..b1a466fa645437424ae754aa470b0126ea93b4e6 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungControllerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/loeschanforderung/LoeschAnforderungControllerTest.java @@ -23,7 +23,6 @@ */ package de.ozgcloud.alfa.loeschanforderung; -import static de.ozgcloud.alfa.common.UserProfileUrlProviderTestFactory.*; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -38,7 +37,6 @@ import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.errorhandling.ExceptionController; import de.ozgcloud.alfa.common.errorhandling.ProblemDetailMapper; import lombok.SneakyThrows; @@ -91,8 +89,6 @@ class LoeschAnforderungControllerTest { @Test void shouldReturn200() throws Exception { - initUserProfileUrlProvider(new UserProfileUrlProvider()); - var response = doRequest(); response.andExpect(status().isOk()); diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java index 77a63407f2c188a1a84653ffe35eb17bf1354cd1..609ea5ccf1b83f33ecb2db97b2f4ff90652d2470 100644 --- a/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java +++ b/alfa-service/src/test/java/de/ozgcloud/alfa/vorgang/VorgangControllerTest.java @@ -42,8 +42,6 @@ import org.mockito.Captor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import org.springframework.context.ApplicationContext; -import org.springframework.core.env.Environment; import org.springframework.hateoas.EntityModel; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; @@ -52,7 +50,6 @@ import org.springframework.test.web.servlet.assertj.MockMvcTester.MockMvcRequest import org.springframework.test.web.servlet.assertj.MvcTestResultAssert; import org.springframework.web.util.UriComponentsBuilder; -import de.ozgcloud.alfa.common.UserProfileUrlProvider; import de.ozgcloud.alfa.common.clientattribute.ClientAttributeService; import de.ozgcloud.alfa.common.user.UserId; import de.ozgcloud.alfa.common.user.UserProfileTestFactory; @@ -814,18 +811,10 @@ class VorgangControllerTest { @Nested class TestVorgangWithEingang { - private UserProfileUrlProvider urlProvider = new UserProfileUrlProvider(); - @BeforeEach void initTest() { when(vorgangService.findVorgangWithEingang(any())).thenReturn(VorgangWithEingangTestFactory.create()); when(modelAssembler.toModel(any())).then(i -> EntityModel.of(i.getArgument(0))); - - ApplicationContext context = mock(ApplicationContext.class); - Environment environment = mock(Environment.class); - when(environment.getProperty(anyString())).thenReturn("test/"); - when(context.getEnvironment()).thenReturn(environment); - urlProvider.setApplicationContext(context); } @Test