diff --git a/goofy-server/src/main/java/de/itvsh/goofy/RootController.java b/goofy-server/src/main/java/de/itvsh/goofy/RootController.java index da38241910ce92c67ccb0a4c1f6be3d233f56b93..24daf2d39e3d1586f1185d66a22124cdd3ab661e 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/RootController.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/RootController.java @@ -82,8 +82,6 @@ public class RootController { linkTo(VorgangController.class).withRel(REL_VORGAENGE), linkTo(DownloadTokenController.class).withRel(REL_DOWNLOAD_TOKEN), Link.of(userManagerUrlProvider.getUserProfileSearchTemplate(), REL_SEARCH_USER)) -// .ifMatch(this::hasRoleAndUserManagerIsConfigured) -// .addLink(() -> Link.of(userManagerUrlProvider.getUserProfileSearchTemplate(), REL_SEARCH_USER)) .ifMatch(this::hasRoleAndSearchServerAvailable).addLinks( buildVorgangListByPageLink(REL_SEARCH, Optional.empty())); @@ -101,10 +99,6 @@ public class RootController { return model; } - private boolean hasRoleAndUserManagerIsConfigured() { - return hasRole() && userManagerUrlProvider.isConfiguredForSearchUserProfile(); - } - private boolean hasRoleAndSearchServerAvailable() { return hasRole() && systemStatusService.isSearchServerAvailable(); } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/RootControllerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/RootControllerTest.java index a9e3af878e25af514e04881ae2e9a2ef0ec823f3..079520b7a8c70287892fbd67f7ce88fc029f8a79 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/RootControllerTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/RootControllerTest.java @@ -34,7 +34,6 @@ import java.time.ZoneOffset; import java.util.Optional; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -49,6 +48,7 @@ import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import de.itvsh.goofy.common.user.CurrentUserService; +import de.itvsh.goofy.common.user.UserId; import de.itvsh.goofy.common.user.UserManagerUrlProvider; import de.itvsh.goofy.common.user.UserProfileTestFactory; import de.itvsh.goofy.common.user.UserRemoteService; @@ -77,16 +77,16 @@ class RootControllerTest { void initTest() { mockMvc = MockMvcBuilders.standaloneSetup(controller).build(); - when(currentUserService.getUserId()).thenReturn(UserProfileTestFactory.ID); - when(internalUserIdService.getUserId(any())).thenReturn(Optional.of(UserProfileTestFactory.ID)); + when(currentUserService.getUserId()).thenReturn(UserId.from("42")); + when(internalUserIdService.getUserId(any())).thenReturn(Optional.empty()); + when(userManagerUrlProvider.getUserProfileSearchTemplate()).thenReturn("UserProfileSearchTemplateDummy/$"); } - @Disabled("FIXME") @DisplayName("Links for user") @Nested class TestLinks { - @DisplayName("with any verwaltung role") + @DisplayName("with role " + UserRole.VERWALTUNG_USER) @Nested class TestWithVerwaltungRole { @@ -94,7 +94,6 @@ class RootControllerTest { void mockCurrentUserService() { doReturn(true).when(controller).hasVerwaltungRole(); when(systemStatusService.isSearchServerAvailable()).thenReturn(true); - when(userManagerUrlProvider.isConfiguredForSearchUserProfile()).thenReturn(false); } @Test @@ -120,15 +119,10 @@ class RootControllerTest { .extracting(Link::getHref).isEqualTo("/api/vorgangs?page=0{&searchBy,limit,assignedTo}"); } - @Test - void shouldNotHaveSearchUserLinkIfNotConfigured() { - var model = controller.getRootResource(); - - assertThat(model.getLink(RootController.REL_SEARCH_USER)).isNotPresent(); - } - @Test void shouldHaveMyVorgaengeLink() { + when(internalUserIdService.getUserId(any())).thenReturn(Optional.of(UserProfileTestFactory.ID)); + var model = controller.getRootResource(); assertThat(model.getLink(RootController.REL_MY_VORGAENGE)).isPresent().get().extracting(Link::getHref) @@ -137,6 +131,8 @@ class RootControllerTest { @Test void shouldHaveSearchMyVorgaengeLink() { + when(internalUserIdService.getUserId(any())).thenReturn(Optional.of(UserProfileTestFactory.ID)); + var model = controller.getRootResource(); assertThat(model.getLink(RootController.REL_SEARCH_MY_VORGAENGE)).isPresent().get().extracting(Link::getHref) @@ -151,29 +147,6 @@ class RootControllerTest { .isEqualTo("/api/downloadtoken"); } - @DisplayName("and userManager is configured") - @Nested - class TestAndUserManagerIsConfigured { - - private String userProfileSearchTemplate = "UserProfileSearchTemplate"; - - @BeforeEach - void mockCurrentUserService() { - when(userManagerUrlProvider.getUserProfileSearchTemplate()).thenReturn(userProfileSearchTemplate); - } - - @Test - void shouldHaveSearchUserLink() { - when(userManagerUrlProvider.isConfiguredForSearchUserProfile()).thenReturn(true); - - var model = controller.getRootResource(); - - assertThat(model.getLink(RootController.REL_SEARCH_USER)).isPresent().get().extracting(Link::getHref) - .isEqualTo(userProfileSearchTemplate); - - } - } - @DisplayName("search service not available") @Nested class TestWithoutSearchService { @@ -192,6 +165,8 @@ class RootControllerTest { @Test void shouldHaveMyVorgaengeLink() { + when(internalUserIdService.getUserId(any())).thenReturn(Optional.of(UserProfileTestFactory.ID)); + var model = controller.getRootResource(); assertThat(model.getLink(RootController.REL_MY_VORGAENGE)).isPresent().get().extracting(Link::getHref) @@ -337,29 +312,38 @@ class RootControllerTest { } } - @Disabled("FIXME") - @Test - void shouldHaveJavaVersion() throws Exception { - callEndpoint().andExpect(jsonPath("$.javaVersion").exists()); - } + @DisplayName("Root resource") + @Nested + class TestRootResource { + + @BeforeEach + void initTest() { + when(currentUserService.getUserId()).thenReturn(UserId.from("42")); + when(internalUserIdService.getUserId(any())).thenReturn(Optional.empty()); + when(userManagerUrlProvider.getUserProfileSearchTemplate()).thenReturn("UserProfileSearchTemplateDummy/$"); + } + + @Test + void shouldHaveJavaVersion() throws Exception { + callEndpoint().andExpect(jsonPath("$.javaVersion").exists()); + } - @Disabled("FIXME") - @Test - void versionExists() throws Exception { - when(properties.getVersion()).thenReturn("42"); + @Test + void shouldHaveversion() throws Exception { + when(properties.getVersion()).thenReturn("42"); - callEndpoint().andExpect(jsonPath("$.version").value("42")); - } + callEndpoint().andExpect(jsonPath("$.version").value("42")); + } - @Disabled("FIXME") - @Test - void buildTimeExists() throws Exception { - when(properties.getTime()).thenReturn(LocalDateTime.parse("2021-04-01T10:30").toInstant(ZoneOffset.UTC)); + @Test + void shouldHavebuildTime() throws Exception { + when(properties.getTime()).thenReturn(LocalDateTime.parse("2021-04-01T10:30").toInstant(ZoneOffset.UTC)); - callEndpoint().andExpect(jsonPath("$.buildTime").exists()); - } + callEndpoint().andExpect(jsonPath("$.buildTime").exists()); + } - private ResultActions callEndpoint() throws Exception { - return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk()); + private ResultActions callEndpoint() throws Exception { + return mockMvc.perform(get(RootController.PATH)).andExpect(status().isOk()); + } } } \ No newline at end of file