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>
|
<artifactId>h2</artifactId>
|
||||||
<version>${h2database.version}</version>
|
<version>${h2database.version}</version>
|
||||||
</dependency>
|
</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>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
@ -47,6 +63,9 @@
|
|||||||
<hibernate.version>5.3.7.Final</hibernate.version>
|
<hibernate.version>5.3.7.Final</hibernate.version>
|
||||||
<h2database.version>1.4.196</h2database.version>
|
<h2database.version>1.4.196</h2database.version>
|
||||||
<assertj-core.version>3.8.0</assertj-core.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>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
@ -9,7 +9,7 @@ public enum Strategy {
|
|||||||
//See that the classes belongs to different packages
|
//See that the classes belongs to different packages
|
||||||
MAP_KEY_COLUMN_BASED(Collections.singletonList(com.baeldung.hibernate.persistmaps.mapkeycolumn.Order.class)),
|
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,
|
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,
|
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.Item.class,
|
||||||
com.baeldung.hibernate.persistmaps.mapkeyjoincolumn.Order.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