Author: jsong
Date: Fri May  6 13:39:08 2005
New Revision: 168650

URL: http://svn.apache.org/viewcvs?rev=168650&view=rev
Log:
Update detailed tests for controls property constraint.

Modified:
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java
    
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/PersonControl.java
    
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java

Modified: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java?rev=168650&r1=168649&r2=168650&view=diff
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java
 (original)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java
 Fri May  6 13:39:08 2005
@@ -17,7 +17,11 @@
 @ControlInterface
 public interface BookControl
 {
-       //A PropertySet to test AT_LEAST_ONE
+       /**
+        * A propertySet with AT_LEAST_ONE constraint
+        * User needs to set at least one value when instantiating controls 
declaratively;
+        * It is unknow what will happens when instantiating controls 
programmatically.
+        */
     @PropertySet
     @Target ({ElementType.FIELD, ElementType.TYPE})
     @Retention(RetentionPolicy.RUNTIME)
@@ -32,7 +36,11 @@
         public String eu_price();
        }
 
-       //A PropertySet to test AT_MOST_ONE
+       /**
+        * A propertySet with AT_MOST_ONE
+        * User can not set more than one value when instantiating controls 
declaratively;
+        * It is unknow what will happens when instantiating controls 
programmatically.
+        */
     @PropertySet
     @Target ({ElementType.FIELD, ElementType.TYPE})
     @Retention(RetentionPolicy.RUNTIME)
@@ -40,15 +48,19 @@
     public @interface Language
     {
         @AnnotationMemberTypes.Text(maxLength=8)
-        public String coverlanguage() default "English";
+        public String coverlanguage();
         @AnnotationMemberTypes.Text(maxLength=8)
-        public String contentlanguage() default "French";
+        public String contentlanguage();
         @AnnotationMemberTypes.Text(maxLength=8)
         public String authorlanguage();
        }
 
-       //A PropertySet to test EXACTLY_ONE
-    @PropertySet
+       /**
+        * A propertySet with EXACTLY_ONE
+        * User must set one value, and only one value when instantiating 
controls declaratively;
+        * It is unknow what will happens when instantiating controls 
programmatically.
+        */
+       @PropertySet
     @Target ({ElementType.FIELD, ElementType.TYPE})
     @Retention(RetentionPolicy.RUNTIME)
     
@AnnotationConstraints.MembershipRule(AnnotationConstraints.MembershipRuleValues.EXACTLY_ONE)

Modified: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/PersonControl.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/PersonControl.java?rev=168650&r1=168649&r2=168650&view=diff
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/PersonControl.java
 (original)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/PersonControl.java
 Fri May  6 13:39:08 2005
@@ -23,6 +23,11 @@
        public final static String EXPIRYDATE_MINVALUE="2007/02/28";
        //public final static String ISSUEDATE_MAXVALUE=null;
 
+       /**
+        * A propertySet with ALL_IF_ANY
+        * Rule is enforced at build time when users instantiate the control 
declaratively.
+        * It is unknow what will happens when instantiating controls 
programmatically.
+        */
     @PropertySet
     @Target ({ElementType.FIELD, ElementType.TYPE})
     @Retention(RetentionPolicy.RUNTIME)
@@ -30,14 +35,11 @@
     public @interface Address
     {
         @AnnotationMemberTypes.Text(maxLength=8)
-        public String street() default "";
+        public String street();
         @AnnotationMemberTypes.Text(maxLength=8)
-        public String city() default "";
+        public String city();
         @AnnotationMemberTypes.Text(maxLength=8)
         public String province();
-        //public String province() default "";
-        //Test ALL_IF_ANY
-
         @AnnotationMemberTypes.Int(minValue=0, maxValue=100000)
         public int zipcode() default 0;
 

Modified: 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java
URL: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java?rev=168650&r1=168649&r2=168650&view=diff
==============================================================================
--- 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java
 (original)
+++ 
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java
 Fri May  6 13:39:08 2005
@@ -15,9 +15,12 @@
 import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
 import org.apache.beehive.test.tools.mantis.annotations.tch.Status;
 
+import org.apache.beehive.controls.runtime.bean.AnnotationConstraintValidator;
 
-
-
+/**
+ * Test objective: to trigger runtime validation for property constraint rule.
+ * Condition: According to dev, runtime validation is trigger when all 
properties are set.
+ */
 public class ConstraintTest extends TestCase
 {
     public ConstraintTest( String s ) { super( s ); }
@@ -32,6 +35,7 @@
         return new TestBeanContext();
     }
        @Freq("detailed")
+       @Status("inactive")
        public void testRule_AT_LEAST_ONE()throws Exception{
 
                Report report=new Report();
@@ -52,42 +56,19 @@
                BookControlBean 
book=(BookControlBean)java.beans.Beans.instantiate(
                        Thread.currentThread().getContextClassLoader() ,
                        
"org.apache.beehive.controls.test.controls.property.constraint.BookControlBean");
-               /*
-               int count=0;
-               String coverlanguage=book.getCoverlanguage();
-               String contentlanguage=book.getContentlanguage();
-               String authorlanguage=book.getAuthorlanguage();
-
-               if(coverlanguage!=null)
-                       count=count+1;
-               if(contentlanguage!=null)
-                       count=count+1;
-               if(authorlanguage!=null)
-                       count=count+1;
-
-               if (count>1)
-                       fail("AT_MOST_ONE is not enforced");
-               */
+
                try{
                        book.setCoverlanguage("English");
+                       book.setContentlanguage("French");
+                       //This should trigger 
AnnotationConstraintValidator.validateMembership by setting ALL the properties
                        book.setAuthorlanguage("Spanish");
 
-                       String cover=book.getCoverlanguage();
-                       String author=book.getAuthorlanguage();
-
-                       
System.out.println("******************************************************");
-                       System.out.println(cover);
-                       System.out.println(author);
-                       
System.out.println("******************************************************");
-
-                       Assert.assertEquals("English",book.getCoverlanguage());
-                       Assert.assertNull(book.getAuthorlanguage());
+                       fail("No runtime exception caught when AT_MOST_ONE is 
violated at runtime");
 
                }
                catch(Exception e){
                        e.printStackTrace();
-                       fail(e.getMessage());
-
+                       //runtime exception caught, test passes
                }
        }
        @Freq("detailed")
@@ -98,22 +79,23 @@
                        Thread.currentThread().getContextClassLoader() ,
                        
"org.apache.beehive.controls.test.controls.property.constraint.BookControlBean");
 
-               int count=0;
-               String coverlanguage=book.getCoverlanguage();
-               String contentlanguage=book.getContentlanguage();
-               String authorlanguage=book.getAuthorlanguage();
-
-               if(coverlanguage!=null)
-                       count=count+1;
-               if(contentlanguage!=null)
-                       count=count+1;
-               if(authorlanguage!=null)
-                       count=count+1;
+               try{
+                       book.setTitle("Book Title");
+                       //This should cause runtime exception by violating 
EXACT_ONE rule
+                       book.setSubject("Book Subject");
+                       //Problem: rule validation is triggered BEFORE all 
properties is set
+                       //book.setContent("Book content");
+
+                       fail("No runtime exception caught when EXACT_ONE is 
violated at runtime");
 
-               if (!(count==1))
-                       fail("EXACTLY_ONE is not enforced");
+               }
+               catch(Exception e){
+                       e.printStackTrace();
+                       //runtime exception caught, test passes
+               }
        }
        @Freq("detailed")
+       @Status("inactive")
        public void testRule_ALL_IF_ANY()throws Exception{
 
                Report report=new Report();


Reply via email to