Select Git revision
EnvironmentControllerTest.java
EnvironmentControllerTest.java 3.36 KiB
/*
* Copyright (C) 2022 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;
import static org.mockito.Mockito.*;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import com.thedeanda.lorem.LoremIpsum;
import de.ozgcloud.alfa.vorgang.VorgangProcessorProperties;
import lombok.SneakyThrows;
class EnvironmentControllerTest {
@InjectMocks
private EnvironmentController controller;
@Mock
private OAuth2Properties oAuth2Properties;
@Mock
private ProductionProperties productionProperties;
@Mock
private VorgangProcessorProperties vorgangProcessorProperties;
private MockMvc mockMvc;
@BeforeEach
void initTest() {
mockMvc = MockMvcBuilders.standaloneSetup(controller).build();
}
@DisplayName("Get frontend environment")
@Nested
class TestGetEnvironment {
private static final String CLIENT = LoremIpsum.getInstance().getFirstName() + "Client";
private static final boolean PRODUCTION = true;
private static final String PROCESSOR_NAME = "dummyProcessorName";
@BeforeEach
void init() {
when(productionProperties.isProduction()).thenReturn(PRODUCTION);
when(oAuth2Properties.getResource()).thenReturn(CLIENT);
when(vorgangProcessorProperties.getProcessorNames()).thenReturn(List.of(PROCESSOR_NAME));
}
@SneakyThrows
@Test
void shouldReturnOk() {
var response = doRequest();
response.andExpect(status().isOk());
}
@SneakyThrows
@Test
void shouldHaveProductionTrueAsDefault() {
var response = doRequest();
response.andExpect(jsonPath("$.production").value(PRODUCTION));
}
@SneakyThrows
@Test
void shouldHaveClientId() {
var response = doRequest();
response.andExpect(jsonPath("$.clientId").value(CLIENT));
}
@SneakyThrows
@Test
void shouldHaveProcessorNames() {
var response = doRequest();
response.andExpect(jsonPath("$.processorNames").value(PROCESSOR_NAME));
}
@SneakyThrows
private ResultActions doRequest() {
return mockMvc.perform(get(EnvironmentController.BASE_PATH));
}
}
}