You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by cr...@apache.org on 2002/06/15 22:22:01 UTC

cvs commit: jakarta-commons/beanutils/src/test/org/apache/commons/beanutils PropertyUtilsTestCase.java

craigmcc    2002/06/15 13:22:01

  Modified:    beanutils/src/java/org/apache/commons/beanutils
                        PropertyUtils.java
               beanutils/src/test/org/apache/commons/beanutils
                        PropertyUtilsTestCase.java
  Log:
  Make PropertyUtils.getPropertyType() return the class of the underlying
  mapped property, analogous to the way it works on indexed properties.
  
  Add test case for getPropertyType() method.
  
  PR: Bugzilla #8810
  Submitted by:	Viral Tolat <viral.tolat at integral.com>
  
  Revision  Changes    Path
  1.25      +7 -4      jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java
  
  Index: PropertyUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/PropertyUtils.java,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- PropertyUtils.java	28 Apr 2002 01:16:48 -0000	1.24
  +++ PropertyUtils.java	15 Jun 2002 20:22:01 -0000	1.25
  @@ -1028,6 +1028,9 @@
           } else if (descriptor instanceof IndexedPropertyDescriptor) {
               return (((IndexedPropertyDescriptor) descriptor).
                       getIndexedPropertyType());
  +        } else if (descriptor instanceof MappedPropertyDescriptor) {
  +            return (((MappedPropertyDescriptor) descriptor).
  +                    getMappedPropertyType());
           } else {
               return (descriptor.getPropertyType());
           }
  
  
  
  1.16      +57 -4     jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java
  
  Index: PropertyUtilsTestCase.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- PropertyUtilsTestCase.java	23 Jan 2002 22:52:26 -0000	1.15
  +++ PropertyUtilsTestCase.java	15 Jun 2002 20:22:01 -0000	1.16
  @@ -66,6 +66,7 @@
   import java.beans.PropertyDescriptor;
   import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
  +import java.util.List;
   
   import org.apache.commons.beanutils.priv.PrivateBeanFactory;
   import org.apache.commons.beanutils.priv.PrivateDirect;
  @@ -90,6 +91,7 @@
    * <li>getNestedProperty(Object,String)</li>
    * <li>getPropertyDescriptor(Object,String)</li>
    * <li>getPropertyDescriptors(Object)</li>
  + * <li>getPropertyType(Object,String)</li>
    * <li>getSimpleProperty(Object,String)</li>
    * <li>setIndexedProperty(Object,String,Object)</li>
    * <li>setIndexedProperty(Object,String,String,Object)</li>
  @@ -1234,6 +1236,57 @@
               fail("InvocationTargetException");
           } catch (NoSuchMethodException e) {
               ; // Correct result for this test
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getPropertyType() on all kinds of properties.
  +     */
  +    public void testGetPropertyType() {
  +
  +        Class clazz = null;
  +        int intArray[] = new int[0];
  +        String stringArray[] = new String[0];
  +
  +        try {
  +            clazz = PropertyUtils.getPropertyType(bean, "booleanProperty");
  +            assertEquals("booleanProperty type", Boolean.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "booleanSecond");
  +            assertEquals("booleanSecond type", Boolean.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "doubleProperty");
  +            assertEquals("doubleProperty type", Double.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "floatProperty");
  +            assertEquals("floatProperty type", Float.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "intArray");
  +            assertEquals("intArray type", intArray.getClass(), clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "intIndexed");
  +            assertEquals("intIndexed type", Integer.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "intProperty");
  +            assertEquals("intProperty type", Integer.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "listIndexed");
  +            assertEquals("listIndexed type", List.class, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "longProperty");
  +            assertEquals("longProperty type", Long.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "mappedProperty");
  +            assertEquals("mappedProperty type", String.class, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "mappedIntProperty");
  +            assertEquals("mappedIntProperty type", Integer.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "readOnlyProperty");
  +            assertEquals("readOnlyProperty type", String.class, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "shortProperty");
  +            assertEquals("shortProperty type", Short.TYPE, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "stringArray");
  +            assertEquals("stringArray type", stringArray.getClass(), clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "stringIndexed");
  +            assertEquals("stringIndexed type", String.class, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "stringProperty");
  +            assertEquals("stringProperty type", String.class, clazz);
  +            clazz = PropertyUtils.getPropertyType(bean, "writeOnlyProperty");
  +            assertEquals("writeOnlyProperty type", String.class, clazz);
  +        } catch (Exception e) {
  +            fail("Exception: " + e.getMessage());
           }
   
       }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>