/* * Copyright (c) 2024. Das Land Schleswig-Holstein vertreten durch das Ministerium für Energiewende, Klimaschutz, Umwelt und Natur * Zentrales IT-Management * * 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.admin; import static org.junit.jupiter.api.Assertions.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.data.rest.RepositoryRestProperties; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.ResultActions; import de.ozgcloud.admin.common.user.UserRole; import de.ozgcloud.common.test.ITCase; import lombok.SneakyThrows; @ITCase @AutoConfigureMockMvc @WithMockUser(roles = UserRole.ADMIN_ADMIN) class ConfigurationApiITCase { @Autowired private RepositoryRestProperties restProperties; @Autowired private MockMvc mockMvc; @Nested class TestConfigurationRestEndpoint { @Test void shouldBetSetToApi() { var basePath = restProperties.getBasePath(); assertEquals("/api/configuration", basePath); } @Test @SneakyThrows void shouldHaveStatusOk() { var result = doPerform(); result.andExpect(status().isOk()); } @Test @SneakyThrows void shouldHaveContentType() { var result = doPerform(); result.andExpect(content().contentType("application/hal+json")); } @Test @SneakyThrows void shouldHaveStandardProfileLink() { var result = doPerform(); result.andExpect(jsonPath("$._links.profile.href").value("http://localhost" + restProperties.getBasePath() + "/profile")); } @SneakyThrows private ResultActions doPerform() { return mockMvc.perform(get(restProperties.getBasePath())); } } }