BAEL-2805: Added unit test cases (#6728)
* BAEL-2805: Added unit test cases * BAEL-2805: Added a property annotated with @Column and @Size * BAEL-2805: Moved the examples from hibernate5 to hibernate-mapping
This commit is contained in:
parent
6e4c34d774
commit
88ff2a56ac
@ -31,6 +31,22 @@
|
||||
<artifactId>h2</artifactId>
|
||||
<version>${h2database.version}</version>
|
||||
</dependency>
|
||||
<!-- validation -->
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>${hibernate-validator.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.el</groupId>
|
||||
<artifactId>javax.el-api</artifactId>
|
||||
<version>${javax.el-api.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.glassfish</groupId>
|
||||
<artifactId>javax.el</artifactId>
|
||||
<version>${org.glassfish.javax.el.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
@ -47,6 +63,9 @@
|
||||
<hibernate.version>5.3.7.Final</hibernate.version>
|
||||
<h2database.version>1.4.196</h2database.version>
|
||||
<assertj-core.version>3.8.0</assertj-core.version>
|
||||
<hibernate-validator.version>5.3.3.Final</hibernate-validator.version>
|
||||
<javax.el-api.version>2.2.5</javax.el-api.version>
|
||||
<org.glassfish.javax.el.version>3.0.1-b08</org.glassfish.javax.el.version>
|
||||
</properties>
|
||||
|
||||
</project>
|
@ -9,7 +9,7 @@ public enum Strategy {
|
||||
//See that the classes belongs to different packages
|
||||
MAP_KEY_COLUMN_BASED(Collections.singletonList(com.baeldung.hibernate.persistmaps.mapkeycolumn.Order.class)),
|
||||
MAP_KEY_BASED(Arrays.asList(com.baeldung.hibernate.persistmaps.mapkey.Item.class,
|
||||
com.baeldung.hibernate.persistmaps.mapkey.Order.class)),
|
||||
com.baeldung.hibernate.persistmaps.mapkey.Order.class,com.baeldung.hibernate.persistmaps.mapkey.User.class)),
|
||||
MAP_KEY_JOIN_COLUMN_BASED(Arrays.asList(com.baeldung.hibernate.persistmaps.mapkeyjoincolumn.Seller.class,
|
||||
com.baeldung.hibernate.persistmaps.mapkeyjoincolumn.Item.class,
|
||||
com.baeldung.hibernate.persistmaps.mapkeyjoincolumn.Order.class)),
|
||||
|
@ -0,0 +1,66 @@
|
||||
package com.baeldung.hibernate.persistmaps.mapkey;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.Id;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
@Entity
|
||||
public class User {
|
||||
@Id
|
||||
@Column(length = 3)
|
||||
private String firstName;
|
||||
|
||||
@Size(min = 3, max = 15)
|
||||
private String middleName;
|
||||
|
||||
@Length(min = 3, max = 15)
|
||||
private String lastName;
|
||||
|
||||
@Column(length = 5)
|
||||
@Size(min = 3, max = 5)
|
||||
private String city;
|
||||
|
||||
public User(String firstName, String middleName, String lastName, String city) {
|
||||
super();
|
||||
this.firstName = firstName;
|
||||
this.middleName = middleName;
|
||||
this.lastName = lastName;
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getFirstName() {
|
||||
return firstName;
|
||||
}
|
||||
|
||||
public void setFirstName(String firstName) {
|
||||
this.firstName = firstName;
|
||||
}
|
||||
|
||||
public String getMiddleName() {
|
||||
return middleName;
|
||||
}
|
||||
|
||||
public void setMiddleName(String middletName) {
|
||||
this.middleName = middletName;
|
||||
}
|
||||
|
||||
public String getLastName() {
|
||||
return lastName;
|
||||
}
|
||||
|
||||
public void setLastName(String lastName) {
|
||||
this.lastName = lastName;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,81 @@
|
||||
package com.baeldung.hibernate.validation;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import java.util.Set;
|
||||
import javax.persistence.PersistenceException;
|
||||
import javax.validation.ConstraintViolation;
|
||||
import javax.validation.Validation;
|
||||
import javax.validation.Validator;
|
||||
import javax.validation.ValidatorFactory;
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.SessionFactory;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import com.baeldung.hibernate.HibernateUtil;
|
||||
import com.baeldung.hibernate.Strategy;
|
||||
import com.baeldung.hibernate.persistmaps.mapkey.User;
|
||||
|
||||
public class UserValidationUnitTest {
|
||||
|
||||
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 whenValidationWithSizeAndInvalidMiddleName_thenConstraintViolation() {
|
||||
User user = new User("john", "m", "butler", "japan");
|
||||
constraintViolations = validator.validateProperty(user, "middleName");
|
||||
assertEquals(constraintViolations.size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithSizeAndValidMiddleName_thenNoConstraintViolation() {
|
||||
User user = new User("john", "mathis", "butler", "japan");
|
||||
constraintViolations = validator.validateProperty(user, "middleName");
|
||||
assertEquals(constraintViolations.size(), 0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithLengthAndInvalidLastName_thenConstraintViolation() {
|
||||
User user = new User("john", "m", "b", "japan");
|
||||
constraintViolations = validator.validateProperty(user, "lastName");
|
||||
assertEquals(constraintViolations.size(), 1);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithLengthAndValidLastName_thenNoConstraintViolation() {
|
||||
User user = new User("john", "mathis", "butler", "japan");
|
||||
constraintViolations = validator.validateProperty(user, "lastName");
|
||||
assertEquals(constraintViolations.size(), 0);
|
||||
}
|
||||
|
||||
@Test(expected = PersistenceException.class)
|
||||
public void whenSavingFirstNameWithInvalidFirstName_thenPersistenceException() {
|
||||
User user = new User("john", "mathis", "butler", "japan");
|
||||
session.save(user);
|
||||
session.getTransaction()
|
||||
.commit();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidationWithSizeAndColumnWithValidCity_thenNoConstraintViolation() {
|
||||
User user = new User("john", "mathis", "butler", "japan");
|
||||
constraintViolations = validator.validateProperty(user, "city");
|
||||
assertEquals(constraintViolations.size(), 0);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user