You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2004/12/04 01:21:55 UTC

svn commit: r109736 - in incubator/beehive/trunk/controls/test: src/controls/org/apache/beehive/controls/test/controls/property src/drivers/org/apache/beehive/controls/test/driver/property src/units/org/apache/beehive/controls/test/jpf/property src/units/org/apache/beehive/controls/test/jws/property webapps/controlsWeb/WEB-INF/src/jws webapps/controlsWeb/property/veto

Author: jsong
Date: Fri Dec  3 16:21:54 2004
New Revision: 109736

URL: http://svn.apache.org/viewcvs?view=rev&rev=109736
Log:
Add tests on constrained property and bound property.
CR:ngore

Added:
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControl.java   (contents, props changed)
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControlImpl.jcs   (contents, props changed)
   incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/property/DrivePropertyInfo.java   (contents, props changed)
   incubator/beehive/trunk/controls/test/webapps/controlsWeb/property/veto/
   incubator/beehive/trunk/controls/test/webapps/controlsWeb/property/veto/Controller.jpf   (contents, props changed)
Modified:
   incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java
   incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java
   incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws

Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControl.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControl.java?view=auto&rev=109736
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControl.java	Fri Dec  3 16:21:54 2004
@@ -0,0 +1,44 @@
+package org.apache.beehive.controls.test.controls.property;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import org.apache.beehive.controls.api.bean.ControlInterface;
+import org.apache.beehive.controls.api.packaging.PropertyInfo;
+import org.apache.beehive.controls.api.properties.PropertySet;
+
+/**
+ * A control interface with bound and/or constrain propertySet
+ */
+@ControlInterface
+public interface BoundPropertyControl
+{
+	static final String BRAND_DEFAULT = "DEFAULT_BRAND";
+	static final String MATERIAL_DEFAULT = "DEFAULT_MATERIAL";
+	static final String QUALITY_DEFAULT = "DEFAULT_QUALITY";
+
+	@PropertySet
+	@Retention(RetentionPolicy.RUNTIME)
+	public @interface Wheel
+	{
+		@PropertyInfo(bound=true)
+		public String Brand() default BRAND_DEFAULT;
+    }
+
+	@PropertySet
+	@Retention(RetentionPolicy.RUNTIME)
+	public @interface Door
+	{
+		@PropertyInfo(constrained=true)
+		public String Material() default MATERIAL_DEFAULT;
+    }
+
+	@PropertySet
+	@Retention(RetentionPolicy.RUNTIME)
+	public @interface Window
+	{
+		@PropertyInfo(bound=true,constrained=true)
+		public String Quality() default QUALITY_DEFAULT;
+    }
+
+	public String sayHello();
+}

Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControlImpl.jcs
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControlImpl.jcs?view=auto&rev=109736
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/property/BoundPropertyControlImpl.jcs	Fri Dec  3 16:21:54 2004
@@ -0,0 +1,26 @@
+package org.apache.beehive.controls.test.controls.property;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+import org.apache.beehive.controls.api.context.Context;
+import org.apache.beehive.controls.api.context.ControlBeanContext;
+
+/**
+ * A control impl that accesses the property declared by its control interface via control context
+ */
+
+@ControlImplementation
+public class BoundPropertyControlImpl implements BoundPropertyControl
+{ 
+    @Context ControlBeanContext context;
+
+    /*Accesses the propertySet value and returns the value*/
+    public String sayHello()
+    {
+    	/**BUG: could not refer to Greeting directly*/
+        //Greeting greeting=(SingleProperty.Greeting)context.getControlPropertySet(SingleProperty.Greeting.class);
+        
+        //return greeting.GreetWord();
+        return "Hello";
+    }
+
+} 
\ No newline at end of file

Added: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/property/DrivePropertyInfo.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/property/DrivePropertyInfo.java?view=auto&rev=109736
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/property/DrivePropertyInfo.java	Fri Dec  3 16:21:54 2004
@@ -0,0 +1,154 @@
+package org.apache.beehive.controls.test.driver.property;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyVetoException;
+import java.beans.VetoableChangeListener;
+import org.apache.beehive.test.tools.milton.common.Report;
+import org.apache.beehive.controls.test.controls.property.BoundPropertyControl;
+import org.apache.beehive.controls.test.controls.property.BoundPropertyControlBean;
+
+/* Tests bound and constrained propertySets declared on controls
+ */
+public class DrivePropertyInfo
+{
+	private boolean propertyChanged=false;
+	private boolean vetoExceptionCaught=false;
+
+    class ChangeTestListener implements java.beans.PropertyChangeListener
+    {
+        /**
+         * Implementation of PropertyChangeListener.propertyChange().
+         * Record all the chages
+         */
+        public void propertyChange(PropertyChangeEvent pce)
+        {
+			//record it
+			propertyChanged=true;
+        }
+    }
+
+    class VetoableTestListener implements VetoableChangeListener
+    {
+        /**
+         * Implementation of PropertyChangeListener.propertyChange().
+         * Veto all the change
+         */
+        public void vetoableChange(PropertyChangeEvent pce) throws PropertyVetoException
+        {
+            // Veto attempts to set even values
+			throw new PropertyVetoException("Sorry", pce);
+        }
+    }
+
+	private BoundPropertyControlBean myControl;
+
+	public void setControl(BoundPropertyControlBean aControl){
+
+		myControl=aControl;
+	}
+
+	/* If a constrained property change is veto-ed, the property should not be changed
+	 * And a PropertyVetoException should be caught.
+	 */
+	public Report doVetoChangeOnConstrainedProperty(){
+
+		propertyChanged=false;
+		vetoExceptionCaught=false;
+
+		Report report=new Report();
+
+		if (myControl==null){
+			report.setStatus(Report.FAIL);
+			report.setMessage("the control is NULL");
+		}
+		else
+		{
+	        // Create a new test listener and register it on the test bean
+	        ChangeTestListener ctl = new ChangeTestListener();
+	        myControl.addPropertyChangeListener(ctl);
+
+	        // Create a new test listener and register it on the test bean
+	        VetoableTestListener vtl = new VetoableTestListener();
+	        myControl.addVetoableChangeListener(vtl);
+
+			try{
+				myControl.setQuality("New_Quality");
+			}
+			catch(PropertyVetoException e){vetoExceptionCaught=true;}
+
+			if (vetoExceptionCaught){
+				if (propertyChanged){
+					report.setStatus(Report.FAIL);
+					report.setMessage("PropertyChanged listener is invoked");
+				}
+				else{
+					String theQuality=myControl.getQuality();
+
+					if (theQuality.equals(BoundPropertyControl.QUALITY_DEFAULT))
+						report.setStatus(Report.PASS);
+					else{
+						report.setStatus(Report.FAIL);
+						report.setMessage("Property value changed to:"+theQuality+
+							". Although PropertyChangedEvent not received.");
+					}
+				}
+			}
+			else{
+				report.setStatus(Report.FAIL);
+				report.setMessage("PropertyVetoException not caught");
+			}
+		}
+		return report;
+	}
+
+
+	/* Change on unconstrained property should go succeed.*/
+	public Report doVetoChangeOnUnConstrainedProperty(){
+
+		propertyChanged=false;
+		vetoExceptionCaught=false;
+
+		Report report=new Report();
+
+		if (myControl==null){
+			report.setStatus(Report.FAIL);
+			report.setMessage("the control is NULL");
+		}
+		else
+		{
+	        // Create a new test listener and register it on the test bean
+	        ChangeTestListener ctl = new ChangeTestListener();
+	        myControl.addPropertyChangeListener(ctl);
+
+	        // Create a new test listener and register it on the test bean
+	        VetoableTestListener vtl = new VetoableTestListener();
+	        myControl.addVetoableChangeListener(vtl);
+
+			myControl.setBrand("New_Brand");
+
+			if (!vetoExceptionCaught){
+				if (!propertyChanged){
+					report.setStatus(Report.FAIL);
+					report.setMessage("PropertyChanged listener is NOT invoked");
+				}
+				else{
+					String theBrand=myControl.getBrand();
+
+					if (theBrand.equals("New_Brand"))
+						report.setStatus(Report.PASS);
+					else{
+						report.setStatus(Report.FAIL);
+						report.setMessage("Property value changed to:"+theBrand+
+							" afterPropertyChangedEvent not received.");
+					}
+				}
+			}
+			else{
+				report.setStatus(Report.FAIL);
+				report.setMessage("PropertyVetoException is caught");
+			}
+		}
+		return report;
+	}
+}
\ No newline at end of file

Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java?view=diff&rev=109736&p1=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java&r1=109735&p2=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java&r2=109736
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java	(original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jpf/property/TestProperty.java	Fri Dec  3 16:21:54 2004
@@ -74,4 +74,13 @@
     {
 		assertReport("/controlsWeb/property/client_impl2/Controller.jpf");
     }
+
+    /**
+     * Tests vetoing the change of a constrained property
+     */
+	@Freq("checkin")
+    public void testVetoPropertyChange() throws Exception
+    {
+		assertReport("/controlsWeb/property/veto/Controller.jpf");
+    }
 }

Modified: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java?view=diff&rev=109736&p1=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java&r1=109735&p2=incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java&r2=109736
==============================================================================
--- incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java	(original)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/jws/property/TestProperty.java	Fri Dec  3 16:21:54 2004
@@ -75,4 +75,22 @@
     {
 		assertReport("http://localhost:8080/controlsWeb/jws/Property.jws","testSetters2");
     }
+
+    /**
+     * Tests vetoing change made to a constrained property
+     */
+	@Freq("checkin")
+    public void testVetoChangeOnConstrainedProperty() throws Exception
+    {
+		assertReport("http://localhost:8080/controlsWeb/jws/Property.jws","testVetoChangeOnConstrainedProperty");
+    }
+
+    /**
+     * Tests vetoing change made to an uncontrained property
+     */
+	@Freq("checkin")
+    public void testVetoChangeOnUnConstrainedProperty() throws Exception
+    {
+		assertReport("http://localhost:8080/controlsWeb/jws/Property.jws","testVetoChangeOnUnConstrainedProperty");
+    }
 }

Modified: incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws?view=diff&rev=109736&p1=incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws&r1=109735&p2=incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws&r2=109736
==============================================================================
--- incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws	(original)
+++ incubator/beehive/trunk/controls/test/webapps/controlsWeb/WEB-INF/src/jws/Property.jws	Fri Dec  3 16:21:54 2004
@@ -30,6 +30,9 @@
 import org.apache.beehive.controls.test.driver.property.DriveGetters;
 import org.apache.beehive.controls.test.driver.property.DriveSetters;
 import org.apache.beehive.controls.test.driver.property.DriveContextAccess;
+
+import org.apache.beehive.controls.test.driver.property.DrivePropertyInfo;
+import org.apache.beehive.controls.test.controls.property.BoundPropertyControlBean;
 import org.apache.beehive.test.tools.milton.common.Report;
 
 
@@ -40,6 +43,9 @@
     @Control
     public PropertyControlBean myControl;
 
+    @Control
+    public BoundPropertyControlBean myBoundPropertyControl;
+
     /*
      * Get a control property by getters on the control bean class.
      * The control is instantiated declaratively.
@@ -172,6 +178,33 @@
 		report.setStatus(Report.FAIL);
 		report.setExceptionStack(e);
         }
+        return report;
+    }
+
+    /*
+     * Test veto-ing a the change on a constrained property
+     */
+    @WebMethod
+    public Report testVetoChangeOnConstrainedProperty()
+    {        
+    	Report report=new Report();
+	DrivePropertyInfo driver=new DrivePropertyInfo();
+	driver.setControl(myBoundPropertyControl);
+	report=driver.doVetoChangeOnConstrainedProperty();
+        return report;
+    }
+
+
+    /*
+     * Test veto-ing a the change on a unconstrained property
+     */
+    @WebMethod
+    public Report testVetoChangeOnUnConstrainedProperty()
+    {        
+    	Report report=new Report();
+	DrivePropertyInfo driver=new DrivePropertyInfo();
+	driver.setControl(myBoundPropertyControl);
+	report=driver.doVetoChangeOnUnConstrainedProperty();
         return report;
     }
     

Added: incubator/beehive/trunk/controls/test/webapps/controlsWeb/property/veto/Controller.jpf
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/webapps/controlsWeb/property/veto/Controller.jpf?view=auto&rev=109736
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/webapps/controlsWeb/property/veto/Controller.jpf	Fri Dec  3 16:21:54 2004
@@ -0,0 +1,66 @@
+/*
+ *
+ * N E T U I
+ *
+ * Copyright 2004 The Apache Software Foundation.
+ *
+ * All Rights Reserved. Unpublished rights reserved under the copyright laws
+ * of the United States. The software contained on this media is proprietary
+ * to and embodies the confidential technology of BEA Systems, Inc. The
+ * possession or receipt of this information does not convey any right to
+ * disclose its contents, reproduce it, or use,  or license the use,
+ * for manufacture or sale, the information or anything described
+ * therein. Any use, disclosure, or reproduction without BEA System's
+ * prior written permission is strictly prohibited.
+ *
+ * $Header:$
+ */
+package property.veto;
+
+import org.apache.beehive.netui.pageflow.PageFlowController;
+import org.apache.beehive.netui.pageflow.Forward;
+import org.apache.beehive.netui.pageflow.FormData;
+import org.apache.beehive.netui.pageflow.annotations.Jpf;
+
+import org.apache.beehive.controls.api.bean.Control;
+import org.apache.beehive.controls.api.bean.ControlBean;
+import org.apache.beehive.controls.test.controls.property.BoundPropertyControlBean;
+import org.apache.beehive.controls.test.driver.property.DrivePropertyInfo;
+import org.apache.beehive.test.tools.milton.common.Report;
+
+/* Tests client veto-ing the changing of a constrained property
+ */
+
+@Jpf.Controller(
+    forwards = {
+        @Jpf.Forward(name=Report.RESULTS,path = Report.RESULTSJSP) 
+    })
+public class Controller extends PageFlowController
+{
+    @Control
+    public BoundPropertyControlBean myControl;
+  
+    /**
+     * @jpf:action
+     */
+    @Jpf.Action(
+        )
+    protected Forward begin(){
+    	
+    	Report report=new Report();
+	DrivePropertyInfo driver=new DrivePropertyInfo();
+	try{
+		driver.setControl(myControl);
+		report=driver.doVetoChangeOnConstrainedProperty();
+        }
+        catch(Exception e){
+		
+		report.setStatus(Report.FAIL);
+		report.setExceptionStack(e);
+        }
+        return new Forward(Report.RESULTS, Report.KEY, report);
+    }
+
+}
+
+