Author: jsong Date: Tue Jan 25 14:14:11 2005 New Revision: 126433 URL: http://svn.apache.org/viewcvs?view=rev&rev=126433 Log: Adding test for EventSetInfo of controls packaging.
Added: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DriveEventSetInfo.java incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/packaging/EventSetInfoTest.java Modified: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java Added: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DriveEventSetInfo.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DriveEventSetInfo.java?view=auto&rev=126433 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DriveEventSetInfo.java Tue Jan 25 14:14:11 2005 @@ -0,0 +1,111 @@ +package org.apache.beehive.controls.test.driver.packaging; + +import java.lang.Class; +import java.beans.BeanInfo; +import java.beans.Introspector; +import java.beans.EventSetDescriptor; +import org.apache.beehive.controls.test.controls.event.HelloBean; +import org.apache.beehive.test.tools.milton.common.Report; + +/* This class contains the logic to test EventSetInfo annotation of control packaging. + * + * PropertyInfo annotations on control interface shall be written into control beaninfo + * class during control packaging process. + * The tests in this class will get feature info from control beaninfo class in + * order to make sure this part of packaging process works fine. + */ + +public class DriveEventSetInfo +{ + + /*Gets class level feature info from HelloBeanBeanInfo class*/ + public Report doGetEventSetInfo(){ + + Report report=new Report(); + report.setStatus(Report.PASS); + + try{ + BeanInfo beanInfo=Introspector.getBeanInfo(Class.forName( + "org.apache.beehive.controls.test.controls.event.HelloBean")); + EventSetDescriptor[] descriptors=beanInfo.getEventSetDescriptors(); + + //Find and inspect EventSet descriptor declared on HelloBean. + EventSetDescriptor descriptor=findEventSet(descriptors,"eventSet0"); + + if (descriptor==null){ + report.setStatus(Report.FAIL); + report.setMessage("Could not find EventSet descriptor for 'eventSet0'."); + } + else{ + if (!descriptor.isInDefaultEventSet()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet0' is not default."); + } + else if (descriptor.isUnicast()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet0' is not unicast."); + } + + } + + if (report.getStatus().equals(Report.PASS)){ + descriptor=findEventSet(descriptors,"eventSet1"); + if (descriptor==null){ + report.setStatus(Report.FAIL); + report.setMessage("Could not find property descriptor for 'eventSet1'."); + } + else{ + if (!descriptor.isInDefaultEventSet()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet1' is not default."); + } + else if (descriptor.isUnicast()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet1' is not unicast."); + } + } + } + + if (report.getStatus().equals(Report.PASS)){ + descriptor=findEventSet(descriptors,"eventSet2"); + if (descriptor==null){ + report.setStatus(Report.FAIL); + report.setMessage("Could not find property descriptor for 'eventSet2'."); + } + else{ + if (!descriptor.isInDefaultEventSet()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet2' is not default."); + } + else if (!descriptor.isUnicast()){ + report.setStatus(Report.FAIL); + report.setMessage("'eventSet2' is not unicast."); + } + } + + } + + } + catch(Exception e){ + report.setStatus(Report.FAIL); + report.setExceptionStack(e); + } + + return report; + + } + + private EventSetDescriptor findEventSet(EventSetDescriptor[] array,String eventname){ + + EventSetDescriptor result=null; + for(int i=0;i<array.length;i++){ + result=array[i]; + if (result.getName().equals(eventname)) + break; + else + result=null; + } + return result; + } + +} Modified: incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java?view=diff&rev=126433&p1=incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java&r1=126432&p2=incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java&r2=126433 ============================================================================== --- incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java (original) +++ incubator/beehive/trunk/controls/test/src/drivers/org/apache/beehive/controls/test/driver/packaging/DrivePropertyInfo.java Tue Jan 25 14:14:11 2005 @@ -30,7 +30,7 @@ "org.apache.beehive.controls.test.controls.property.BoundPropertyControlBean")); PropertyDescriptor[] descriptors=beanInfo.getPropertyDescriptors(); - //Find and inspect property descriptor for each property. + //Find and inspect property descriptor declared on BoundPropertyControlBean. PropertyDescriptor descriptor=findProperty(descriptors,"Brand"); if (descriptor==null){ @@ -137,6 +137,8 @@ result=array[i]; if (result.getName().equals(propertyname)) break; + else + result=null; } return result; } Added: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/packaging/EventSetInfoTest.java Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/packaging/EventSetInfoTest.java?view=auto&rev=126433 ============================================================================== --- (empty file) +++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/packaging/EventSetInfoTest.java Tue Jan 25 14:14:11 2005 @@ -0,0 +1,40 @@ +package org.apache.beehive.controls.test.java.packaging; + +import junit.framework.TestCase; +import org.apache.beehive.controls.test.driver.packaging.DriveEventSetInfo; +import org.apache.beehive.test.tools.milton.common.Report; +import org.apache.beehive.test.tools.mantis.annotations.tch.Freq; + + +/** + * A TestCase that tests controls PropertyInfo + * + * PropertyInfo annotation on control interface is saved into controlBeanInfo class + * when the control is packaged. + * + * The tests in this class get property info from controlBeanInfo class after the + * control is packaged into jar, in order to verify this part of control packaging + * process. + */ [EMAIL PROTECTED]("detailed") +public class EventSetInfoTest extends TestCase +{ + public EventSetInfoTest( String s ) { super( s ); } + + public void setUp() { } + + /*Test getting FeatureInfo from ControlBeanInfo class*/ + @Freq("detailed") + public void testGetEventSetInfo() throws Exception + { + DriveEventSetInfo driver=new DriveEventSetInfo(); + + Report report=driver.doGetEventSetInfo(); + + String result=report.getStatus(); + + if (result.equals(Report.FAIL)) + fail(report.getMessage()); + + } +}
