FINERACT-2326: Use Hibernate Validator
This commit is contained in:
+32
-17
@@ -20,21 +20,36 @@ package org.apache.fineract.infrastructure.businessdate.validation;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import jakarta.validation.Validation;
|
||||
import jakarta.validation.Validator;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.fineract.infrastructure.businessdate.data.BusinessDateUpdateRequest;
|
||||
import org.apache.fineract.infrastructure.businessdate.domain.BusinessDateType;
|
||||
import org.apache.fineract.validation.config.ValidationConfig;
|
||||
import org.hibernate.validator.HibernateValidator;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.context.MessageSourceAutoConfiguration;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.validation.Validator;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootTest
|
||||
@ContextConfiguration(classes = { ValidationConfig.class })
|
||||
@ContextConfiguration(classes = { BusinessDateValidationTest.TestConfig.class })
|
||||
class BusinessDateValidationTest {
|
||||
|
||||
@Configuration
|
||||
@Import({ MessageSourceAutoConfiguration.class })
|
||||
static class TestConfig {
|
||||
|
||||
@Bean
|
||||
public jakarta.validation.Validator validator() {
|
||||
return Validation.byProvider(HibernateValidator.class).configure().buildValidatorFactory().getValidator();
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private Validator validator;
|
||||
|
||||
@@ -42,14 +57,14 @@ class BusinessDateValidationTest {
|
||||
void invalidAllBlank() {
|
||||
var request = BusinessDateUpdateRequest.builder().dateFormat("").type(null).date(" ").locale(null).build();
|
||||
|
||||
var errors = validator.validateObject(request);
|
||||
var errors = validator.validate(request);
|
||||
|
||||
assertThat(errors.getFieldErrorCount()).isEqualTo(5);
|
||||
assertThat(errors).hasSize(6);
|
||||
|
||||
assertThat(errors.getFieldErrors()).anyMatch(e -> e.getField().equals("date"));
|
||||
assertThat(errors.getFieldErrors()).anyMatch(e -> e.getField().equals("dateFormat"));
|
||||
assertThat(errors.getFieldErrors()).anyMatch(e -> e.getField().equals("locale"));
|
||||
assertThat(errors.getFieldErrors()).anyMatch(e -> e.getField().equals("type"));
|
||||
assertThat(errors).anyMatch(e -> e.getPropertyPath().toString().equals("date"));
|
||||
assertThat(errors).anyMatch(e -> e.getPropertyPath().toString().equals("dateFormat"));
|
||||
assertThat(errors).anyMatch(e -> e.getPropertyPath().toString().equals("locale"));
|
||||
assertThat(errors).anyMatch(e -> e.getPropertyPath().toString().equals("type"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -57,11 +72,11 @@ class BusinessDateValidationTest {
|
||||
var request = BusinessDateUpdateRequest.builder().dateFormat("dd-MM-yyyy").type(BusinessDateType.BUSINESS_DATE).date("12-05-2025")
|
||||
.locale("INVALID").build();
|
||||
|
||||
var errors = validator.validateObject(request);
|
||||
var errors = validator.validate(request);
|
||||
|
||||
assertThat(errors.getFieldErrorCount()).isEqualTo(1);
|
||||
assertThat(errors).hasSize(1);
|
||||
|
||||
assertThat(errors.getFieldErrors()).anyMatch(e -> e.getField().equals("locale"));
|
||||
assertThat(errors).anyMatch(e -> e.getPropertyPath().toString().equals("locale"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -69,11 +84,11 @@ class BusinessDateValidationTest {
|
||||
var request = BusinessDateUpdateRequest.builder().dateFormat("dd/MM/yyyy").type(BusinessDateType.BUSINESS_DATE).date("12-05-2025")
|
||||
.locale("en").build();
|
||||
|
||||
var errors = validator.validateObject(request);
|
||||
var errors = validator.validate(request);
|
||||
|
||||
assertThat(errors.getErrorCount()).isEqualTo(1);
|
||||
assertThat(errors).hasSize(1);
|
||||
|
||||
assertThat(errors.getAllErrors()).anyMatch(e -> "Wrong local date fields.".equals(e.getDefaultMessage()));
|
||||
assertThat(errors).anyMatch(e -> "Wrong local date fields.".equals(e.getMessage()));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -81,8 +96,8 @@ class BusinessDateValidationTest {
|
||||
var request = BusinessDateUpdateRequest.builder().dateFormat("dd-MM-yyyy").type(BusinessDateType.BUSINESS_DATE).date("12-05-2025")
|
||||
.locale("en").build();
|
||||
|
||||
var errors = validator.validateObject(request);
|
||||
var errors = validator.validate(request);
|
||||
|
||||
assertThat(errors.getFieldErrorCount()).isEqualTo(0);
|
||||
assertThat(errors).hasSize(0);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user