dev@glassfish.java.net

ACTION: Ming or Sherry: Please review my QL change

From: Ed Burns <Ed.Burns_at_Sun.COM>
Date: Mon, 03 Aug 2009 18:42:00 -0700

Hello Ming and Sherry,

I need to update the bean-validator QL test to exercise the latest
bug-fix from JBoss. Can you please review this?

When Jane gets the bean-validator jar integrated into the nightly, I'll
check it in.

Ed

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/