Compare commits
12 commits
16be291a8d
...
ec7b3b5e40
Author | SHA1 | Date | |
---|---|---|---|
ec7b3b5e40 | |||
20a22001c2 | |||
21df04fbc6 | |||
ec9b930386 | |||
cde8556d9c | |||
|
264595ca58 | ||
f866eaade6 | |||
|
f774450986 | ||
5c06b052af | |||
137095814f | |||
13d5283b67 | |||
dc018471b2 |
4 changed files with 69 additions and 1 deletions
|
@ -110,6 +110,7 @@ tasks {
|
|||
}
|
||||
withType<Test> {
|
||||
useJUnitPlatform()
|
||||
maxParallelForks = 1
|
||||
}
|
||||
named("compileJava").configure {
|
||||
dependsOn(swaggerSources.getByName("pmt").code)
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
package de.hmmh.pmt.db;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.ConstraintViolation;
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
@ -10,6 +13,7 @@ import lombok.NoArgsConstructor;
|
|||
import lombok.Setter;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Set;
|
||||
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
|
@ -46,7 +50,13 @@ public class Project {
|
|||
|
||||
|
||||
public boolean isValid() {
|
||||
return plannedEnd.isAfter(start) && (realEnd == null || realEnd.isAfter(start));
|
||||
}
|
||||
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
|
||||
Set<ConstraintViolation<Project>> violations = validator.validate(this);
|
||||
|
||||
return violations.isEmpty() &&
|
||||
plannedEnd.isAfter(start) &&
|
||||
(realEnd == null || realEnd.isAfter(start));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,17 @@
|
|||
package de.hmmh.pmt;
|
||||
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import de.hmmh.pmt.db.Project;
|
||||
import de.hmmh.pmt.db.ProjectRepository;
|
||||
import de.hmmh.pmt.employee.ApiClientFactory;
|
||||
import de.hmmh.pmt.employee.api.EmployeeControllerApi;
|
||||
import de.hmmh.pmt.employee.api.QualificationControllerApi;
|
||||
import org.junit.jupiter.api.AfterEach;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
|
@ -23,8 +28,15 @@ public abstract class IntegrationTest {
|
|||
@Autowired
|
||||
protected MockMvc mvc;
|
||||
@Autowired
|
||||
protected ObjectMapper objectMapper;
|
||||
@Autowired
|
||||
protected ProjectRepository projectRepository;
|
||||
|
||||
@MockBean
|
||||
protected EmployeeControllerApi mockEmployeeApi;
|
||||
@MockBean
|
||||
protected QualificationControllerApi mockQualificationApi;
|
||||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
projectRepository.deleteAll();
|
||||
|
|
45
src/test/java/de/hmmh/pmt/project/CreateTest.java
Normal file
45
src/test/java/de/hmmh/pmt/project/CreateTest.java
Normal file
|
@ -0,0 +1,45 @@
|
|||
package de.hmmh.pmt.project;
|
||||
|
||||
import de.hmmh.pmt.IntegrationTest;
|
||||
import de.hmmh.pmt.dtos.CreateProjectDTO;
|
||||
import de.hmmh.pmt.employee.dtos.EmployeeResponseDTO;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.test.web.servlet.RequestBuilder;
|
||||
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
public class CreateTest extends IntegrationTest {
|
||||
|
||||
@Test
|
||||
void successfullyCreate() throws Exception {
|
||||
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));
|
||||
|
||||
String body = objectMapper.writeValueAsString(createDTO);
|
||||
|
||||
RequestBuilder requestBuilder = MockMvcRequestBuilders
|
||||
.post(baseUri + "/project")
|
||||
.accept(MediaType.APPLICATION_JSON)
|
||||
.content(body)
|
||||
.contentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
Mockito.when(mockEmployeeApi.findById(Mockito.anyLong())).thenReturn(new EmployeeResponseDTO());
|
||||
|
||||
mvc
|
||||
.perform(requestBuilder)
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(jsonPath("$.id").exists())
|
||||
;
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue