First Hibernate Validator specific constraints tests.
This commit is contained in:
@@ -6,6 +6,7 @@ import javax.persistence.Id;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
import org.hibernate.validator.constraints.CreditCardNumber;
|
||||
|
||||
@Entity
|
||||
public class User {
|
||||
@@ -23,6 +24,12 @@ public class User {
|
||||
@Size(min = 3, max = 5)
|
||||
private String city;
|
||||
|
||||
@CreditCardNumber
|
||||
private String creditCardNumber;
|
||||
|
||||
@CreditCardNumber(ignoreNonDigitCharacters = true)
|
||||
private String lenientCreditCardNumber;
|
||||
|
||||
public User(String firstName, String middleName, String lastName, String city) {
|
||||
super();
|
||||
this.firstName = firstName;
|
||||
@@ -63,4 +70,19 @@ public class User {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getCreditCardNumber() {
|
||||
return creditCardNumber;
|
||||
}
|
||||
|
||||
public void setCreditCardNumber(String creditCardNumber) {
|
||||
this.creditCardNumber = creditCardNumber;
|
||||
}
|
||||
|
||||
public String getLenientCreditCardNumber() {
|
||||
return lenientCreditCardNumber;
|
||||
}
|
||||
|
||||
public void setLenientCreditCardNumber(String lenientCreditCardNumber) {
|
||||
this.lenientCreditCardNumber = lenientCreditCardNumber;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.baeldung.hibernate.validation;
|
||||
|
||||
import com.baeldung.hibernate.HibernateUtil;
|
||||
import com.baeldung.hibernate.Strategy;
|
||||
import com.baeldung.hibernate.persistmaps.mapkey.User;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
import javax.persistence.PersistenceException;
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
import javax.validation.ValidatorFactory;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class UserAdditionalValidationUnitTest {
|
||||
|
||||
private static Validator validator;
|
||||
private static SessionFactory sessionFactory;
|
||||
private Session session;
|
||||
private Set<ConstraintViolation<User>> constraintViolations;
|
||||
|
||||
@BeforeClass
|
||||
public static void before() {
|
||||
ValidatorFactory config = Validation.buildDefaultValidatorFactory();
|
||||
validator = config.getValidator();
|
||||
sessionFactory = HibernateUtil.getSessionFactory(Strategy.MAP_KEY_BASED);
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
session = sessionFactory.openSession();
|
||||
session.beginTransaction();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithCCNAndNullCCN_thenNoConstraintViolation() {
|
||||
User user = new User("John", "Paul", "Butler", "York");
|
||||
constraintViolations = validator.validateProperty(user, "creditCardNumber");
|
||||
assertTrue(constraintViolations.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithCCNAndValidCCN_thenNoConstraintViolation() {
|
||||
User user = new User("John", "Paul", "Butler", "York");
|
||||
user.setCreditCardNumber("79927398713");
|
||||
constraintViolations = validator.validateProperty(user, "creditCardNumber");
|
||||
assertTrue(constraintViolations.isEmpty());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithCCNAndInvalidCCN_thenConstraintViolation() {
|
||||
User user = new User("John", "Paul", "Butler", "York");
|
||||
user.setCreditCardNumber("79927398714");
|
||||
constraintViolations = validator.validateProperty(user, "creditCardNumber");
|
||||
assertEquals(constraintViolations.size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithLenientCCNAndValidCCNWithDashes_thenNoConstraintViolation() {
|
||||
User user = new User("John", "Paul", "Butler", "York");
|
||||
user.setLenientCreditCardNumber("7992-7398-713");
|
||||
constraintViolations = validator.validateProperty(user, "lenientCreditCardNumber");
|
||||
assertTrue(constraintViolations.isEmpty());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user