Skip to content

Commit dc8c053

Browse files
authored
Merge pull request #176 from companieshouse/feature/JU-89-java-21-migration-validation-errors
Enabling custom validation error messaging
2 parents 09a9e2e + 084f751 commit dc8c053

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

src/main/java/uk/gov/companieshouse/orders/api/dto/DeliveryDetailsDTO.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,23 @@
33
import com.fasterxml.jackson.annotation.JsonProperty;
44
import com.google.gson.Gson;
55

6-
import jakarta.validation.constraints.NotBlank;
7-
86
public class DeliveryDetailsDTO {
97

108
@JsonProperty("company_name")
119
private String companyName;
1210

13-
@NotBlank(message = "address_line_1 may not be blank")
1411
@JsonProperty("address_line_1")
1512
private String addressLine1;
1613

1714
@JsonProperty("address_line_2")
1815
private String addressLine2;
1916

20-
@NotBlank(message = "country may not be blank")
2117
@JsonProperty("country")
2218
private String country;
2319

24-
@NotBlank(message = "forename may not be blank")
2520
@JsonProperty("forename")
2621
private String forename;
2722

28-
@NotBlank(message = "locality may not be blank")
2923
@JsonProperty("locality")
3024
private String locality;
3125

@@ -38,7 +32,6 @@ public class DeliveryDetailsDTO {
3832
@JsonProperty("region")
3933
private String region;
4034

41-
@NotBlank(message = "surname may not be blank")
4235
@JsonProperty("surname")
4336
private String surname;
4437

src/main/java/uk/gov/companieshouse/orders/api/validator/DeliveryDetailsValidator.java

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,48 @@
1111
@Component
1212
public class DeliveryDetailsValidator {
1313

14+
private static final String ADDRESS_LINE_1_VALIDATION = "delivery_details.address_line_1 may not be blank";
15+
private static final String COUNTRY_VALIDATION = "delivery_details.country may not be blank";
16+
private static final String FORENAME_VALIDATION = "delivery_details.forename may not be blank";
17+
private static final String SURNAME_VALIDATION = "delivery_details.surname may not be blank";
18+
private static final String LOCALITY_VALIDATION = "delivery_details.locality may not be blank";
19+
private static final String POSTAL_CODE_VALIDATION = "Postcode or Region is required";
20+
1421
public DeliveryDetailsValidator() { }
1522

1623
public List<String> getValidationErrors(final AddDeliveryDetailsRequestDTO addDeliveryDetailsRequestDTO) {
1724
List<String> errors = new ArrayList<>();
1825

26+
String addressLine1 = addDeliveryDetailsRequestDTO.getDeliveryDetails().getAddressLine1();
27+
String country = addDeliveryDetailsRequestDTO.getDeliveryDetails().getCountry();
28+
String forename = addDeliveryDetailsRequestDTO.getDeliveryDetails().getForename();
29+
String surname = addDeliveryDetailsRequestDTO.getDeliveryDetails().getSurname();
30+
String locality = addDeliveryDetailsRequestDTO.getDeliveryDetails().getLocality();
1931
String postalCode = addDeliveryDetailsRequestDTO.getDeliveryDetails().getPostalCode();
2032
String region = addDeliveryDetailsRequestDTO.getDeliveryDetails().getRegion();
2133

2234
if(StringUtils.isBlank(postalCode) && StringUtils.isBlank(region)) {
23-
errors.add("Postcode or Region is required");
35+
errors.add(POSTAL_CODE_VALIDATION);
36+
}
37+
38+
if (StringUtils.isBlank(addressLine1)) {
39+
errors.add(ADDRESS_LINE_1_VALIDATION);
40+
}
41+
42+
if (StringUtils.isBlank(country)) {
43+
errors.add(COUNTRY_VALIDATION);
44+
}
45+
46+
if (StringUtils.isBlank(forename)) {
47+
errors.add(FORENAME_VALIDATION);
48+
}
49+
50+
if (StringUtils.isBlank(surname)) {
51+
errors.add(SURNAME_VALIDATION);
52+
}
53+
54+
if (StringUtils.isBlank(locality)) {
55+
errors.add(LOCALITY_VALIDATION);
2456
}
2557

2658
return errors;

src/test/java/uk/gov/companieshouse/orders/api/controller/BasketControllerIntegrationTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,6 +1522,7 @@ void addDeliveryDetailsFailsDueToFailedValidation() throws Exception {
15221522
deliveryDetailsDTO.setSurname(SURNAME);
15231523
deliveryDetailsDTO.setForename(FORENAME);
15241524
deliveryDetailsDTO.setLocality(LOCALITY);
1525+
deliveryDetailsDTO.setPostalCode(POSTAL_CODE);
15251526

15261527
addDeliveryDetailsRequestDTO.setDeliveryDetails(deliveryDetailsDTO);
15271528

@@ -1535,8 +1536,7 @@ void addDeliveryDetailsFailsDueToFailedValidation() throws Exception {
15351536
.andExpect(status().isBadRequest())
15361537
.andDo(MockMvcResultHandlers.print())
15371538
.andReturn();
1538-
Assertions.assertEquals("Invalid request content.", result.getResponse().getErrorMessage());
1539-
Assertions.assertTrue(result.getResolvedException().getMessage().contains("address_line_1 may not be blank"));
1539+
Assertions.assertTrue(result.getResponse().getContentAsString().contains("address_line_1 may not be blank"));
15401540
}
15411541

15421542
@Test

0 commit comments

Comments
 (0)