Ensure Snake Case in JSON

This commit is contained in:
Phan Huy Tran 2024-09-25 14:16:27 +02:00 committed by Phan Huy Tran
parent 6723b49f7d
commit ffb1a1586a
4 changed files with 25 additions and 32 deletions

@ -8,8 +8,8 @@ Content-Type: application/json
"leading_employee": 1,
"employees": [2, 3],
"contractor": 4,
"contractorName": "Peter File",
"contractor_name": "Peter File",
"comment": "goal of project",
"startDate": "01.01.2000",
"plannedEndDate": "01.01.2001"
"start_date": "01.01.2000",
"planned_end_date": "01.01.2001"
}

@ -1,6 +1,8 @@
package de.szut.lf8_starter.project.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
@ -11,6 +13,7 @@ import java.util.List;
@Getter
@Setter
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class CreateProjectDto {
@NotBlank
private String name;

@ -1,6 +1,8 @@
package de.szut.lf8_starter.project.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
@ -11,35 +13,22 @@ import java.util.List;
@Getter
@Setter
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class GetProjectDto {
private long id;
@NotBlank
private String name;
@NotNull
private long leadingEmployee;
private List<Long> employees;
@NotNull
private long contractor;
@NotBlank
private String contractorName;
@NotBlank
private String comment;
@NotNull
@JsonFormat(pattern = "dd.MM.yyyy")
private LocalDate startDate;
@NotNull
@JsonFormat(pattern = "dd.MM.yyyy")
private LocalDate plannedEndDate;
@NotNull
@JsonFormat(pattern = "dd.MM.yyyy")
private LocalDate endDate;
}

@ -1,5 +1,6 @@
package de.szut.lf8_starter.project;
package de.szut.lf8_starter.integration.project;
import de.szut.lf8_starter.project.ProjectRepository;
import org.json.JSONObject;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
@ -29,15 +30,15 @@ public class CreateProjectActionTest {
void test() throws Exception {
String content = """
{
"name": "name",
"leading_employee": 1,
"employees": [2, 3],
"contractor": 4,
"contractorName": "Peter File",
"comment": "goal of project",
"startDate": "01.01.2000",
"plannedEndDate": "01.01.2001"
}
"name": "name",
"leading_employee": 1,
"employees": [2, 3],
"contractor": 4,
"contractor_name": "Peter File",
"comment": "goal of project",
"start_date": "01.01.2000",
"planned_end_date": "01.01.2001"
}
""";
final var contentAsString = this.mockMvc.perform(
@ -45,13 +46,13 @@ public class CreateProjectActionTest {
)
.andExpect(status().isCreated())
.andExpect(jsonPath("name", is("name")))
.andExpect(jsonPath("leadingEmployee", is(0)))
.andExpect(jsonPath("leading_employee", is(1)))
.andExpect(jsonPath("employees", is(Arrays.asList(2, 3))))
.andExpect(jsonPath("contractor", is(4)))
.andExpect(jsonPath("contractorName", is("Peter File")))
.andExpect(jsonPath("contractor_name", is("Peter File")))
.andExpect(jsonPath("comment", is("goal of project")))
.andExpect(jsonPath("startDate", is("01.01.2000")))
.andExpect(jsonPath("plannedEndDate", is("01.01.2001")))
.andExpect(jsonPath("start_date", is("01.01.2000")))
.andExpect(jsonPath("planned_end_date", is("01.01.2001")))
.andReturn()
.getResponse()
.getContentAsString();
@ -60,7 +61,7 @@ public class CreateProjectActionTest {
final var project = this.projectRepository.findById(id);
assertThat(project.get().getName()).isEqualTo("name");
assertThat(project.get().getLeadingEmployee()).isEqualTo(0);
assertThat(project.get().getLeadingEmployee()).isEqualTo(1);
assertThat(project.get().getContractor()).isEqualTo(4);
assertThat(project.get().getContractorName()).isEqualTo("Peter File");
assertThat(project.get().getComment()).isEqualTo("goal of project");