Issue: Need to modify QL test to exercise latest bean-validator bug fix
SECTION: Modified Files
M bean-validator/simple-bv-servlet/src/test/test/bv/servlet/simple/SimpleBVServletTestNG.java
- Add new strings to search for in the output
M bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/Person.java
M bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/SimpleBVServlet.java
- Make every output line include the case number for accurate checking
by the TestNG program.
SECTION: Diffs
Index: bean-validator/simple-bv-servlet/src/test/test/bv/servlet/simple/SimpleBVServletTestNG.java
===================================================================
--- bean-validator/simple-bv-servlet/src/test/test/bv/servlet/simple/SimpleBVServletTestNG.java (revision 29984)
+++ bean-validator/simple-bv-servlet/src/test/test/bv/servlet/simple/SimpleBVServletTestNG.java (working copy)
-88,9 +88,12 @@
String testLine = null;
String[] regexesToFind = {
"(?s)(?m).*Obtained ValidatorFactory: org.hibernate.validation.engine.ValidatorFactoryImpl.*",
- "(?s)(?m).*ConstraintViolation: message: may not be null propertyPath: firstName.*",
- "(?s)(?m).*ConstraintViolation: message: may not be null propertyPath: lastName.*",
- "(?s)(?m).*No ConstraintViolations found.*"
+ "(?s)(?m).*case1: No ConstraintViolations found.*",
+ "(?s)(?m).*case2: caught IllegalArgumentException.*",
+ "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: listOfString.*",
+ "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: lastName.*",
+ "(?s)(?m).*case3: ConstraintViolation: message: may not be null propertyPath: firstName.*",
+ "(?s)(?m).*case4: No ConstraintViolations found.*"
};
final int len = regexesToFind.length;
int i;
Index: bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/Person.java
===================================================================
--- bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/Person.java (revision 29984)
+++ bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/Person.java (working copy)
-36,6 +36,7 @@
package simple_bv_servlet;
+import java.util.List;
import javax.validation.constraints.NotNull;
public class Person {
-63,6 +64,18 @@
this.lastName = lastName;
}
+ private List<String> listOfString;
+
+ @NotNull
+ public List<String> getListOfString() {
+ return listOfString;
+ }
+
+ public void setListOfString(List<String> listOfString) {
+ this.listOfString = listOfString;
+ }
+
+
}
Index: bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/SimpleBVServlet.java
===================================================================
--- bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/SimpleBVServlet.java (revision 29984)
+++ bean-validator/simple-bv-servlet/src/java/simple_bv_servlet/SimpleBVServlet.java (working copy)
-38,6 +38,8 @@
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
-66,28 +68,43 @@
ValidatorContext validatorContext = validatorFactory.usingContext();
javax.validation.Validator beanValidator = validatorContext.getValidator();
+
+ out.print("<h1>");
+ out.print("Validating person class using validateValue with valid property");
+ out.print("</h1>");
+
+ List<String> listOfString = new ArrayList<String>();
+ listOfString.add("one");
+ listOfString.add("two");
+ listOfString.add("three");
+
+ Set<ConstraintViolation<Person>> violations =
+ beanValidator.validateValue(Person.class, "listOfString", listOfString);
+ printConstraintViolations(out, violations, "case1");
+
+ out.print("<h1>");
+ out.print("Validating person class using validateValue with invalid property");
+ out.print("</h1>");
+
+ try {
+ violations =
+ beanValidator.validateValue(Person.class, "nonExistentProperty", listOfString);
+ } catch (IllegalArgumentException iae) {
+ out.print("<p>");
+ out.print("case2: caught IllegalArgumentException. Message: " +
+ iae.getMessage());
+ out.print("</p>");
+ }
Person person = new Person();
out.print("<h1>");
- out.print("Validating invalid person.");
+ out.print("Validating invalid person instance using validate.");
out.print("</h1>");
- Set<ConstraintViolation<Person>> violations =
- beanValidator.validate(person);
+ violations = beanValidator.validate(person);
- if (violations.isEmpty()) {
- out.print("<p>");
- out.print("No ConstraintViolations found.");
- out.print("</p>");
- } else {
- for (ConstraintViolation<Person> curViolation : violations) {
- out.print("<p>");
- out.print("ConstraintViolation: message: " + curViolation.getMessage() +
- " propertyPath: " + curViolation.getPropertyPath());
- out.print("</p>");
- }
- }
+ printConstraintViolations(out, violations, "case3");
out.print("<h1>");
out.print("Validating valid person.");
-95,24 +112,30 @@
person.setFirstName("John");
person.setLastName("Yaya");
+ person.setListOfString(listOfString);
violations = beanValidator.validate(person);
+ printConstraintViolations(out, violations, "case4");
+ out.print("</body></html>");
+
+ }
+
+ private void printConstraintViolations(PrintWriter out,
+ Set<ConstraintViolation<Person>> violations, String caseId) {
if (violations.isEmpty()) {
out.print("<p>");
- out.print("No ConstraintViolations found.");
+ out.print(caseId + ": No ConstraintViolations found.");
out.print("</p>");
} else {
for (ConstraintViolation<Person> curViolation : violations) {
out.print("<p>");
- out.print("ConstraintViolation: message: " + curViolation.getMessage() +
+ out.print(caseId + ": ConstraintViolation: message: " + curViolation.getMessage() +
" propertyPath: " + curViolation.getPropertyPath());
out.print("</p>");
}
}
-
- out.print("</body></html>");
-
+
}
--
| ed.burns_at_sun.com | office: 408 884 9519 OR x31640
| homepage: | http://ridingthecrest.com/