Compare commits

..

5 commits

Author SHA1 Message Date
a61791f3ef
PMT-32: Implement Tests for Responses
All checks were successful
Quality Check / Validate OAS (push) Successful in 31s
Quality Check / Linting (push) Successful in 1m5s
Quality Check / Testing (push) Successful in 1m7s
Quality Check / Static Analysis (push) Successful in 1m11s
Quality Check / Validate OAS (pull_request) Successful in 32s
Quality Check / Linting (pull_request) Successful in 1m5s
Quality Check / Testing (pull_request) Successful in 1m8s
Quality Check / Static Analysis (pull_request) Successful in 1m10s
2024-10-02 09:02:07 +02:00
5b1a759376
PMT-32: Add Test Data 2024-10-02 09:01:47 +02:00
2dacff69a2
PMT-32: Implement GetAllProjects Endpoint 2024-10-02 08:49:10 +02:00
df130b7d5c
PMT-32: Create Project Model and Repository 2024-10-02 08:48:47 +02:00
c70ca1d172
PMT-32: Define Endpoint Specification 2024-10-02 08:48:15 +02:00
3 changed files with 83 additions and 41 deletions

View file

@ -28,6 +28,8 @@ components:
items: items:
$ref: "#/components/schemas/ProjectInfo" $ref: "#/components/schemas/ProjectInfo"
responses: responses:
UnAuthorized:
description: "Un Authorized"
InternalError: InternalError:
description: "Internal Server Error" description: "Internal Server Error"
content: content:
@ -46,5 +48,7 @@ paths:
application/json: application/json:
schema: schema:
$ref: "#/components/schemas/GetAllProjectsDTO" $ref: "#/components/schemas/GetAllProjectsDTO"
401:
$ref: "#/components/responses/UnAuthorized"
500: 500:
$ref: "#/components/responses/InternalError" $ref: "#/components/responses/InternalError"

View file

@ -1,7 +1,7 @@
package de.hmmh.pmt; package de.hmmh.pmt;
//import de.hmmh.pmt.db.Project; import de.hmmh.pmt.db.Project;
//import de.hmmh.pmt.db.ProjectRepository; import de.hmmh.pmt.db.ProjectRepository;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -11,6 +11,7 @@ import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MockMvc;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@SpringBootTest @SpringBootTest
@AutoConfigureMockMvc(addFilters = false) @AutoConfigureMockMvc(addFilters = false)
@ -21,53 +22,83 @@ public abstract class IntegrationTest {
@Autowired @Autowired
protected MockMvc mvc; protected MockMvc mvc;
//@Autowired @Autowired
//protected ProjectRepository projectRepository; protected ProjectRepository projectRepository;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
//projectRepository.deleteAll(); projectRepository.deleteAll();
} }
@AfterEach @AfterEach
void cleanUp() { void cleanUp() {
//projectRepository.deleteAll(); projectRepository.deleteAll();
} }
protected void createTestData() { protected List<Project> createTestProjectData() {
/*Project testProject1 = new Project( Project project1 = new Project(
0L, 1L,
"testName1", "Build a Dream Space Station",
"testGoaaaaaaaal!", "Launch a self-sustaining space habitat!",
0L, 42L,
0L, 101L,
LocalDateTime.of(2001, 9, 11, 13, 34), LocalDateTime.of(2024, 3, 1, 10, 0),
LocalDateTime.of(2002, 8, 13, 14, 34), LocalDateTime.of(2028, 6, 30, 18, 0),
LocalDateTime.of(2003, 7, 12, 23, 34) LocalDateTime.of(2029, 12, 15, 16, 30)
); );
Project testProject2 = new Project( Project project2 = new Project(
0L, 2L,
"testName2", "Underwater Research Lab",
"testGoaaaaaaaal!", "Discover new marine species!",
0L, 73L,
0L, 202L,
LocalDateTime.of(2009, 9, 11, 13, 34), LocalDateTime.of(2025, 5, 22, 8, 45),
LocalDateTime.of(2009, 12, 13, 14, 34), LocalDateTime.of(2027, 11, 5, 17, 0),
LocalDateTime.of(2010, 7, 12, 23, 34) LocalDateTime.of(2027, 10, 20, 14, 0)
); );
Project testProject3 = new Project( Project project3 = new Project(
0L, 3L,
"testName3", "AI-Powered Smart City",
"testGoaaaaaaaal!", "Create the world's most advanced smart city!",
0L, 89L,
0L, 303L,
LocalDateTime.of(2010, 9, 11, 13, 34), LocalDateTime.of(2026, 9, 14, 12, 0),
LocalDateTime.of(2012, 8, 13, 14, 34), LocalDateTime.of(2030, 4, 1, 9, 30),
LocalDateTime.of(2013, 7, 12, 23, 34) LocalDateTime.of(2030, 5, 2, 15, 0)
);
Project project4 = new Project(
4L,
"Renewable Energy Revolution",
"Replace all fossil fuels with renewables!",
56L,
404L,
LocalDateTime.of(2023, 7, 19, 11, 30),
LocalDateTime.of(2029, 12, 31, 20, 0),
LocalDateTime.of(2029, 10, 5, 18, 45)
);
Project project5 = new Project(
5L,
"Virtual Reality Theme Park",
"Build a fully immersive VR theme park!",
99L,
505L,
LocalDateTime.of(2024, 2, 28, 9, 15),
LocalDateTime.of(2026, 9, 30, 17, 0),
LocalDateTime.of(2026, 8, 15, 13, 45)
);
projectRepository.save(project1);
projectRepository.save(project2);
projectRepository.save(project3);
projectRepository.save(project4);
projectRepository.save(project5);
return List.of(
project1,
project2,
project3,
project4,
project5
); );
projectRepository.save(testProject1);
projectRepository.save(testProject2);
projectRepository.save(testProject3);
*/
} }
} }

View file

@ -2,8 +2,11 @@ package de.hmmh.pmt.project;
import de.hmmh.pmt.IntegrationTest; import de.hmmh.pmt.IntegrationTest;
import de.hmmh.pmt.db.Project;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import java.util.List;
import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.empty;
import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.hasSize;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
@ -16,17 +19,21 @@ public class GetAllTest extends IntegrationTest {
mvc mvc
.perform(get(baseUri + "/project")) .perform(get(baseUri + "/project"))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(jsonPath("$", empty())); .andExpect(jsonPath("$", empty()))
;
} }
@Test @Test
void multipleProjects() throws Exception { void multipleProjects() throws Exception {
createTestData(); List<Project> allProjects = createTestProjectData();
mvc mvc
.perform(get(baseUri + "/project")) .perform(get(baseUri + "/project"))
.andExpect(status().isOk()) .andExpect(status().isOk())
.andExpect(jsonPath("$", hasSize(3))); .andExpect(jsonPath("$", hasSize(allProjects.size())))
.andExpect(jsonPath("$[*].id").exists())
.andExpect(jsonPath("$[*].name").exists())
;
} }
} }