Author: jsong
Date: Fri Jan 28 12:30:09 2005
New Revision: 148917

URL: http://svn.apache.org/viewcvs?view=rev&rev=148917
Log:
Add test for controls constraint: Annotation.MembershipRules.

Added:
   
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/BookControlImpl.jcs
Modified:
   
incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java

Added: 
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?view=auto&rev=148917
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControl.java
   Fri Jan 28 12:30:09 2005
@@ -0,0 +1,69 @@
+package org.apache.beehive.controls.test.controls.property.constraint;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.apache.beehive.controls.api.bean.AnnotationMemberTypes;
+import org.apache.beehive.controls.api.bean.AnnotationConstraints;
+import org.apache.beehive.controls.api.bean.ControlInterface;
+import org.apache.beehive.controls.api.properties.PropertySet;
+
+/**
+ * A control interface for testing Annotation.MembershipRule
+ */
+
[EMAIL PROTECTED]
+public interface BookControl
+{
+       //A PropertySet to test AT_LEAST_ONE
+    @PropertySet
+    @Target ({ElementType.FIELD, ElementType.TYPE})
+    @Retention(RetentionPolicy.RUNTIME)
+    
@AnnotationConstraints.MembershipRule(AnnotationConstraints.MembershipRuleValues.AT_LEAST_ONE)
+    public @interface Price
+    {
+        @AnnotationMemberTypes.Decimal(minValue="10")
+        public String us_price();
+        @AnnotationMemberTypes.Decimal(minValue="10")
+        public String ca_price();
+        @AnnotationMemberTypes.Decimal(minValue="10")
+        public String eu_price();
+       }
+
+       //A PropertySet to test AT_MOST_ONE
+    @PropertySet
+    @Target ({ElementType.FIELD, ElementType.TYPE})
+    @Retention(RetentionPolicy.RUNTIME)
+    
@AnnotationConstraints.MembershipRule(AnnotationConstraints.MembershipRuleValues.AT_MOST_ONE)
+    public @interface Language
+    {
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String coverlanguage() default "English";
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String contentlanguage() default "French";
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String authorlanguage();
+       }
+
+       //A PropertySet to test EXACTLY_ONE
+    @PropertySet
+    @Target ({ElementType.FIELD, ElementType.TYPE})
+    @Retention(RetentionPolicy.RUNTIME)
+    
@AnnotationConstraints.MembershipRule(AnnotationConstraints.MembershipRuleValues.EXACTLY_ONE)
+    public @interface Intro
+    {
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String title();
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String subject();
+        @AnnotationMemberTypes.Text(maxLength=8)
+        public String content();
+       }
+
+       //A PropertySet to test ALL_IF_ANY
+       //Covered by PersonControl.Address
+
+    public String hello();
+}

Added: 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControlImpl.jcs
Url: 
http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControlImpl.jcs?view=auto&rev=148917
==============================================================================
--- (empty file)
+++ 
incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/constraint/BookControlImpl.jcs
        Fri Jan 28 12:30:09 2005
@@ -0,0 +1,18 @@
+package org.apache.beehive.controls.test.controls.property.constraint;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.bean.Extensible;
+import org.apache.beehive.controls.api.context.ControlBeanContext;
+import org.apache.beehive.controls.api.context.Context;
+
[EMAIL PROTECTED]
+public class BookControlImpl implements BookControl
+{
+    @Context ControlBeanContext ctx;
+
+    public String hello()
+    {
+        return "Hello";
+    }
+
+}

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?view=diff&rev=148917&p1=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java&r1=148916&p2=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/property/ConstraintTest.java&r2=148917
==============================================================================
--- 
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 Jan 28 12:30:09 2005
@@ -6,6 +6,8 @@
 import junit.framework.TestCase;
 import org.apache.beehive.controls.api.bean.ControlBean;
 import org.apache.beehive.controls.test.controls.util.TestBeanContext;
+import 
org.apache.beehive.controls.test.controls.property.constraint.BookControl;
+import 
org.apache.beehive.controls.test.controls.property.constraint.BookControlBean;
 import 
org.apache.beehive.controls.test.controls.property.constraint.PersonControl;
 import 
org.apache.beehive.controls.test.controls.property.constraint.PersonControlBean;
 import 
org.apache.beehive.controls.test.driver.property.DrivePropertyConstraint2;
@@ -29,6 +31,66 @@
     {
         return new TestBeanContext();
     }
+
+       public void testRule_AT_LEAST_ONE()throws Exception{
+
+               Report report=new Report();
+               BookControlBean 
book=(BookControlBean)java.beans.Beans.instantiate(
+                       Thread.currentThread().getContextClassLoader() ,
+                       
"org.apache.beehive.controls.test.controls.property.constraint.BookControlBean");
+
+               String usprice=book.getUs_price();
+               String caprice=book.getCa_price();
+               String euprice=book.getEu_price();
+               if ((usprice==null)&&(caprice==null)&&(euprice==null))
+                       fail("Rule AT_LEAST_ONE is not enforced");
+       }
+
+       public void testRule_AT_MOST_ONE()throws Exception{
+
+               Report report=new Report();
+               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");
+       }
+
+       public void testRule_EXACTLY_ONE()throws Exception{
+
+               Report report=new Report();
+               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("EXACTLY_ONE is not enforced");
+       }
 
        public void testRule_ALL_IF_ANY()throws Exception{
 

Reply via email to