Author: niallp
Date: Sun Nov 27 12:48:24 2005
New Revision: 349307
URL: http://svn.apache.org/viewcvs?rev=349307&view=rev
Log:
Add PropertyDescriptor's test to CGLib enhance DynaActionForm test
Modified:
struts/action/trunk/src/test/org/apache/struts/action/TestCGLibDynaActionForm.java
Modified:
struts/action/trunk/src/test/org/apache/struts/action/TestCGLibDynaActionForm.java
URL:
http://svn.apache.org/viewcvs/struts/action/trunk/src/test/org/apache/struts/action/TestCGLibDynaActionForm.java?rev=349307&r1=349306&r2=349307&view=diff
==============================================================================
---
struts/action/trunk/src/test/org/apache/struts/action/TestCGLibDynaActionForm.java
(original)
+++
struts/action/trunk/src/test/org/apache/struts/action/TestCGLibDynaActionForm.java
Sun Nov 27 12:48:24 2005
@@ -17,8 +17,14 @@
*/
package org.apache.struts.action;
+import java.util.List;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
+import java.beans.BeanInfo;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.beans.IndexedPropertyDescriptor;
+import org.apache.commons.beanutils.DynaProperty;
import junit.framework.Test;
import junit.framework.TestSuite;
@@ -85,6 +91,51 @@
/**
+ * Check Property Descriptors
+ */
+ public void testDesciptors() {
+
+ // Introspect the bean and find property descriptors
+ try {
+ BeanInfo beanInfo = Introspector.getBeanInfo(dynaForm.getClass());
+ PropertyDescriptor[] descriptors =
beanInfo.getPropertyDescriptors();
+ DynaProperty[] dynaProperties = dynaClass.getDynaProperties();
+ for (int i = 0; i < dynaProperties.length; i++) {
+ DynaProperty dynaProperty = dynaProperties[i];
+ PropertyDescriptor descriptor = null;
+ for (int j = 0; j < descriptors.length; j++) {
+ if
(dynaProperty.getName().equals(descriptors[j].getName())) {
+ descriptor = descriptors[j];
+ break;
+ }
+ }
+ if (descriptor == null) {
+ fail(i+" Descriptor not found: " + dynaProperty.getName());
+ } else {
+ boolean indexedDescriptor = (descriptor instanceof
IndexedPropertyDescriptor);
+ if (!(dynaProperty.getType() ==
descriptor.getPropertyType())) {
+ // ignore java.util.List - not proper indexed
properties
+ if
(!(List.class.isAssignableFrom(dynaProperty.getType()))) {
+ fail(i+" Descriptor type error: " +
dynaProperty.getName() +
+ " dyna=" + dynaProperty.getType() +
+ " regular=" + descriptor.getPropertyType());
+ }
+ }
+ if (!(dynaProperty.isIndexed() == indexedDescriptor)) {
+ fail(i+" Descriptor index error: " +
dynaProperty.getName() +
+ " dyna=" + dynaProperty.isIndexed() +
+ " regular=" + indexedDescriptor);
+ }
+ }
+ }
+ } catch (Exception e) {
+ fail("Exception thrown " + e);
+ }
+
+ }
+
+
+ /**
* Test simple read property
*/
public void testSimpleRead() {
@@ -128,7 +179,6 @@
fail("Exception thrown " + e);
}
}
-
/**
* Test simple write property
*/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]