diff --git a/src/test/java/de/hmmh/pmt/project/CreateTest.java b/src/test/java/de/hmmh/pmt/project/CreateTest.java index f17ac70..1b162b3 100644 --- a/src/test/java/de/hmmh/pmt/project/CreateTest.java +++ b/src/test/java/de/hmmh/pmt/project/CreateTest.java @@ -1,5 +1,4 @@ package de.hmmh.pmt.project; - import de.hmmh.pmt.IntegrationTest; import de.hmmh.pmt.db.Project; import de.hmmh.pmt.dtos.CreateProjectDTO; @@ -7,17 +6,13 @@ import de.hmmh.pmt.employee.dtos.EmployeeResponseDTO; import org.junit.jupiter.api.Test; import org.mockito.Mockito; import org.springframework.http.HttpStatus; -import org.springframework.http.HttpStatusCode; import org.springframework.http.MediaType; import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.RestClientException; - import java.time.LocalDateTime; import java.util.Map; - -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -29,33 +24,19 @@ public class CreateTest extends IntegrationTest { when(this.mockEmployeeApi.findById(Mockito.anyLong())) .thenReturn(new EmployeeResponseDTO()); - CreateProjectDTO createDTO = new CreateProjectDTO(); - createDTO.setName("Test"); - createDTO.setGoal("A Test Goal"); - createDTO.setCustomerId(10L); - createDTO.setAdministratorId(10L); - createDTO.setStart(LocalDateTime.of(2000, 1, 13, 12, 51)); - createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); - this.mvc - .perform(getRequest(createDTO)) + .perform(getRequest(getCreateProjectDTO())) .andExpect(status().isCreated()) .andExpect(jsonPath("$.id").exists()); } @Test void shouldNotCreateProjectWithSameName() throws Exception { - Map allProjects = createTestProjectData(); Project spaceStation = allProjects.get("space-station"); - CreateProjectDTO createDTO = new CreateProjectDTO(); + CreateProjectDTO createDTO = getCreateProjectDTO(); createDTO.setName(spaceStation.getName()); - createDTO.setGoal(spaceStation.getGoal()); - createDTO.setCustomerId(spaceStation.getCustomerId()); - createDTO.setAdministratorId(spaceStation.getAdministratorId()); - createDTO.setStart(spaceStation.getStart()); - createDTO.setPlannedEnd(spaceStation.getPlannedEnd()); this.mvc .perform(getRequest(createDTO)) @@ -64,69 +45,37 @@ public class CreateTest extends IntegrationTest { @Test void shouldNotCreateProjectWhenAdministratorDoesNotExist() throws Exception { - when(this.mockEmployeeApi.findById(Mockito.anyLong())) .thenThrow(new HttpClientErrorException(HttpStatus.NOT_FOUND)); - CreateProjectDTO createDTO = new CreateProjectDTO(); - createDTO.setName("Test"); - createDTO.setGoal("A Test Goal"); - createDTO.setCustomerId(10L); - createDTO.setAdministratorId(1L); - createDTO.setStart(LocalDateTime.of(2000, 1, 13, 12, 51)); - createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); - this.mvc - .perform(getRequest(createDTO)) + .perform(getRequest(getCreateProjectDTO())) .andExpect(status().isNotFound()); } @Test void shouldReturnUnavailableWhenEmployeeApiIsDown() throws Exception { - when(this.mockEmployeeApi.findById(Mockito.anyLong())) .thenThrow(new HttpClientErrorException(HttpStatus.INTERNAL_SERVER_ERROR)); - CreateProjectDTO createDTO = new CreateProjectDTO(); - createDTO.setName("Test"); - createDTO.setGoal("A Test Goal"); - createDTO.setCustomerId(10L); - createDTO.setAdministratorId(1L); - createDTO.setStart(LocalDateTime.of(2000, 1, 13, 12, 51)); - createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); - this.mvc - .perform(getRequest(createDTO)) + .perform(getRequest(getCreateProjectDTO())) .andExpect(status().isServiceUnavailable()); } @Test void shouldReturnInternalServerErrorOnApiClientCrash() throws Exception { - when(this.mockEmployeeApi.findById(Mockito.anyLong())) .thenThrow(new RestClientException("Api Client crash")); - CreateProjectDTO createDTO = new CreateProjectDTO(); - createDTO.setName("Test"); - createDTO.setGoal("A Test Goal"); - createDTO.setCustomerId(10L); - createDTO.setAdministratorId(1L); - createDTO.setStart(LocalDateTime.of(2000, 1, 13, 12, 51)); - createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); - this.mvc - .perform(getRequest(createDTO)) + .perform(getRequest(getCreateProjectDTO())) .andExpect(status().isInternalServerError()); } @Test void shouldReturnUnprocessableWhenDataIsInvalid() throws Exception { - - CreateProjectDTO createDTO = new CreateProjectDTO(); - createDTO.setName("Test"); - createDTO.setGoal("A Test Goal"); - createDTO.setCustomerId(10L); - createDTO.setAdministratorId(1L); + CreateProjectDTO createDTO = getCreateProjectDTO(); createDTO.setStart(LocalDateTime.of(2003, 1, 13, 12, 51)); createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); @@ -135,8 +84,18 @@ public class CreateTest extends IntegrationTest { .andExpect(status().isUnprocessableEntity()); } - private RequestBuilder getRequest(CreateProjectDTO createDTO) throws Exception { + private CreateProjectDTO getCreateProjectDTO() { + CreateProjectDTO createDTO = new CreateProjectDTO(); + createDTO.setName("Test"); + createDTO.setGoal("A Test Goal"); + createDTO.setCustomerId(10L); + createDTO.setAdministratorId(10L); + createDTO.setStart(LocalDateTime.of(2000, 1, 13, 12, 51)); + createDTO.setPlannedEnd(LocalDateTime.of(2002, 3, 21, 11, 42)); + return createDTO; + } + private RequestBuilder getRequest(CreateProjectDTO createDTO) throws Exception { return MockMvcRequestBuilders .post(baseUri + "/project") .accept(MediaType.APPLICATION_JSON)