diff --git a/javaxval/.gitignore b/javaxval/.gitignore new file mode 100644 index 000000000000..8027134ae9bd --- /dev/null +++ b/javaxval/.gitignore @@ -0,0 +1,6 @@ +.classpath +.project +.settings/ +target/ +bin/ + diff --git a/javaxval/bin/.gitignore b/javaxval/bin/.gitignore new file mode 100644 index 000000000000..55a6bcf59675 --- /dev/null +++ b/javaxval/bin/.gitignore @@ -0,0 +1,6 @@ +.classpath +.project +.settings/ +target/ + + diff --git a/javaxval/bin/pom.xml b/javaxval/bin/pom.xml new file mode 100644 index 000000000000..592f3c343151 --- /dev/null +++ b/javaxval/bin/pom.xml @@ -0,0 +1,51 @@ + + 4.0.0 + org.baeldung + javaxval + 0.1-SNAPSHOT + + + + + + + junit + junit + 4.12 + + + + javax.validation + validation-api + 1.1.0.Final + + + + org.hibernate + hibernate-validator + 5.2.1.Final + + + + org.hibernate + hibernate-validator-annotation-processor + 5.2.1.Final + + + + javax.el + javax.el-api + 2.2.4 + + + + org.glassfish.web + javax.el + 2.2.4 + + + + + + \ No newline at end of file diff --git a/javaxval/pom.xml b/javaxval/pom.xml new file mode 100644 index 000000000000..592f3c343151 --- /dev/null +++ b/javaxval/pom.xml @@ -0,0 +1,51 @@ + + 4.0.0 + org.baeldung + javaxval + 0.1-SNAPSHOT + + + + + + + junit + junit + 4.12 + + + + javax.validation + validation-api + 1.1.0.Final + + + + org.hibernate + hibernate-validator + 5.2.1.Final + + + + org.hibernate + hibernate-validator-annotation-processor + 5.2.1.Final + + + + javax.el + javax.el-api + 2.2.4 + + + + org.glassfish.web + javax.el + 2.2.4 + + + + + + \ No newline at end of file diff --git a/javaxval/src/main/java/org/baeldung/User.java b/javaxval/src/main/java/org/baeldung/User.java new file mode 100644 index 000000000000..2d86a4ec2fc6 --- /dev/null +++ b/javaxval/src/main/java/org/baeldung/User.java @@ -0,0 +1,56 @@ +package org.baeldung; + +import javax.validation.constraints.AssertTrue; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Size; + +public class User { + + @NotNull(message = "Name cannot be null") + private String name; + + @AssertTrue + private boolean working; + + @Size(min = 10, max = 200, message = "Number of characters should be in between 10 and 200 inclusive") + private String aboutMe; + + @Min(value = 18, message = "Age should not be less than 18") + @Max(value = 150, message = "Age should not be more than 150") + private int age; + + public int getAge() { + return age; + } + + public void setAge(int age) { + this.age = age; + } + + public boolean isWorking() { + return working; + } + + public void setWorking(boolean working) { + this.working = working; + } + + public String getAboutMe() { + return aboutMe; + } + + public void setAboutMe(String aboutMe) { + this.aboutMe = aboutMe; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/javaxval/src/test/java/org/baeldung/ValidationTest.java b/javaxval/src/test/java/org/baeldung/ValidationTest.java new file mode 100644 index 000000000000..727630e70350 --- /dev/null +++ b/javaxval/src/test/java/org/baeldung/ValidationTest.java @@ -0,0 +1,81 @@ +package org.baeldung; + +import java.util.Iterator; +import java.util.Set; + +import javax.validation.ConstraintViolation; +import javax.validation.Validation; +import javax.validation.Validator; +import javax.validation.ValidatorFactory; + +import org.junit.Assert; +import org.junit.Test; + +public class ValidationTest { + + @Test + public void ifNameIsNull_nameValidationFails() { + User user = new User(); + user.setWorking(true); + user.setAboutMe("Its all about me!!"); + user.setAge(50); + + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + Set> violations = validator.validate(user); + Assert.assertEquals(violations.isEmpty(), false); + } + + @Test + public void ifSizeNotInRange_aboutMeValidationFails() { + User user = new User(); + user.setName("MyName"); + user.setAboutMe("Its all about me!!"); + user.setAge(50); + + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + Set> violations = validator.validate(user); + Assert.assertEquals(violations.isEmpty(), false); + } + + @Test + public void ifWorkingIsFalse_workingValidationFails() { + User user = new User(); + user.setName("MyName"); + user.setAboutMe("Its all about me!!"); + user.setAge(50); + + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + Set> violations = validator.validate(user); + Assert.assertEquals(violations.isEmpty(), false); + } + + @Test + public void ifAgeNotRange_ageValidationFails() { + User user = new User(); + user.setName("MyName"); + user.setAboutMe("Its all about me!!"); + user.setAge(8); + + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + Set> violations = validator.validate(user); + Assert.assertEquals(violations.isEmpty(), false); + } + + + @Test + public void ifFnameNullAgeNotRangeAndWorkingIsFalse_validationFailsWithThreeErrors() { + User user = new User(); + user.setAboutMe("Its all about me!!"); + user.setAge(300); + + ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); + Validator validator = factory.getValidator(); + Set> violations = validator.validate(user); + Assert.assertEquals(violations.isEmpty(), false); + Assert.assertEquals(violations.size(), 3); + } +}