Skip to content
Snippets Groups Projects
ConfigurationApiITCase.java 2.72 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * 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 {
    
    	private RepositoryRestProperties restProperties;
    
    	private MockMvc mockMvc;
    
    
    	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()));
    		}