craigmcc    01/04/02 17:09:36

  Modified:    beanutils/src/test/org/apache/commons/beanutils
                        PropertyUtilsTestCase.java
  Log:
  Update the unit tests for PropertyUtils to check out the getNestedProperty()
  and setNestedProperty() capabilities.
  
  Change a few method signatures so that this works with JUnit 3.2 or later
  as well, instead of requiring 3.5.
  
  Revision  Changes    Path
  1.2       +542 -9    
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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- PropertyUtilsTestCase.java        2001/03/27 05:33:07     1.1
  +++ PropertyUtilsTestCase.java        2001/04/03 00:09:35     1.2
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java,v
 1.1 2001/03/27 05:33:07 craigmcc Exp $
  - * $Revision: 1.1 $
  - * $Date: 2001/03/27 05:33:07 $
  + * $Header: 
/home/cvs/jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/PropertyUtilsTestCase.java,v
 1.2 2001/04/03 00:09:35 craigmcc Exp $
  + * $Revision: 1.2 $
  + * $Date: 2001/04/03 00:09:35 $
    *
    * ====================================================================
    *
  @@ -79,14 +79,16 @@
    * <p>So far, this test case has tests for the following methods of the
    * <code>PropertyUtils</code> class:</p>
    * <ul>
  + * <li>getNestedProperty(Object,String)</li>
    * <li>getPropertyDescriptor(Object,String)</li>
    * <li>getPropertyDescriptors(Object)</li>
    * <li>getSimpleProperty(Object,String)</li>
  + * <li>setNestedProperty(Object,String,Object)</li>
    * <li>setSimpleProperty(Object,String,Object)</li>
    * </ul>
    *
    * @author Craig R. McClanahan
  - * @version $Revision: 1.1 $ $Date: 2001/03/27 05:33:07 $
  + * @version $Revision: 1.2 $ $Date: 2001/04/03 00:09:35 $
    */
   
   public class PropertyUtilsTestCase extends TestCase {
  @@ -316,6 +318,270 @@
   
   
       /**
  +     * Test getNestedProperty on a boolean property.
  +     */
  +    public void testGetNestedBoolean() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.booleanProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Boolean));
  +            assert("Got correct value",
  +                   ((Boolean) value).booleanValue() ==
  +                   bean.getNested().getBooleanProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a double property.
  +     */
  +    public void testGetNestedDouble() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.doubleProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Double));
  +            assertEquals("Got correct value",
  +                         ((Double) value).doubleValue(),
  +                         bean.getNested().getDoubleProperty(),
  +                         0.005);
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a float property.
  +     */
  +    public void testGetNestedFloat() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.floatProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Float));
  +            assertEquals("Got correct value",
  +                         ((Float) value).floatValue(),
  +                         bean.getNested().getFloatProperty(),
  +                         (float) 0.005);
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on an int property.
  +     */
  +    public void testGetNestedInt() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.intProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Integer));
  +            assertEquals("Got correct value",
  +                         ((Integer) value).intValue(),
  +                         bean.getNested().getIntProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a long property.
  +     */
  +    public void testGetNestedLong() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.longProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Long));
  +            assertEquals("Got correct value",
  +                         ((Long) value).longValue(),
  +                         bean.getNested().getLongProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a read-only String property.
  +     */
  +    public void testGetNestedReadOnly() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.readOnlyProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof String));
  +            assertEquals("Got correct value",
  +                         (String) value,
  +                         bean.getReadOnlyProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a short property.
  +     */
  +    public void testGetNestedShort() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.shortProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof Short));
  +            assertEquals("Got correct value",
  +                         ((Short) value).shortValue(),
  +                         bean.getNested().getShortProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a String property.
  +     */
  +    public void testGetNestedString() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.stringProperty");
  +            assertNotNull("Got a value", value);
  +            assert("Got correct type", (value instanceof String));
  +            assertEquals("Got correct value",
  +                         ((String) value),
  +                         bean.getNested().getStringProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }
  +
  +    }
  +
  +
  +    /**
  +     * Negative test getNestedProperty on an unknown property.
  +     */
  +    public void testGetNestedUnknown() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "nested.unknown");
  +            fail("Should have thrown NoSuchMethodException");
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            ; // Correct result for this test
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test getNestedProperty on a write-only String property.
  +     */
  +    public void testGetNestedWriteOnly() {
  +
  +        try {
  +            Object value =
  +                PropertyUtils.getNestedProperty
  +                (bean, "writeOnlyProperty");
  +            fail("Should have thrown NoSuchMethodException");
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            ; // Correct result for this test
  +        }        
  +
  +    }
  +
  +
  +    /**
        * Test getSimpleProperty on a boolean property.
        */
       public void testGetSimpleBoolean() {
  @@ -326,9 +592,9 @@
                                                   "booleanProperty");
               assertNotNull("Got a value", value);
               assert("Got correct type", (value instanceof Boolean));
  -            assertEquals("Got correct value",
  -                         ((Boolean) value).booleanValue(),
  -                         bean.getBooleanProperty());
  +            assert("Got correct value",
  +                   ((Boolean) value).booleanValue() ==
  +                   bean.getBooleanProperty());
           } catch (IllegalAccessException e) {
               fail("IllegalAccessException");
           } catch (IllegalArgumentException e) {
  @@ -626,6 +892,273 @@
   
   
       /**
  +     * Test setNextedProperty on a boolean property.
  +     */
  +    public void testSetNestedBoolean() {
  +
  +        try {
  +            boolean oldValue = bean.getNested().getBooleanProperty();
  +            boolean newValue = !oldValue;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.booleanProperty",
  +                                            new Boolean(newValue));
  +            assert("Matched new value",
  +                   newValue ==
  +                   bean.getNested().getBooleanProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a double property.
  +     */
  +    public void testSetNestedDouble() {
  +
  +        try {
  +            double oldValue = bean.getNested().getDoubleProperty();
  +            double newValue = oldValue + 1.0;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.doubleProperty",
  +                                            new Double(newValue));
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getDoubleProperty(),
  +                         0.005);
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a float property.
  +     */
  +    public void testSetNestedFloat() {
  +
  +        try {
  +            float oldValue = bean.getNested().getFloatProperty();
  +            float newValue = oldValue + (float) 1.0;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.floatProperty",
  +                                            new Float(newValue));
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getFloatProperty(),
  +                         (float) 0.005);
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a int property.
  +     */
  +    public void testSetNestedInt() {
  +
  +        try {
  +            int oldValue = bean.getNested().getIntProperty();
  +            int newValue = oldValue + 1;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.intProperty",
  +                                            new Integer(newValue));
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getIntProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a long property.
  +     */
  +    public void testSetNestedLong() {
  +
  +        try {
  +            long oldValue = bean.getNested().getLongProperty();
  +            long newValue = oldValue + 1;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.longProperty",
  +                                            new Long(newValue));
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getLongProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a read-only String property.
  +     */
  +    public void testSetNestedReadOnly() {
  +
  +        try {
  +            String oldValue = bean.getNested().getWriteOnlyPropertyValue();
  +            String newValue = oldValue + " Extra Value";
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.readOnlyProperty",
  +                                            newValue);
  +            fail("Should have thrown NoSuchMethodException");
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            ; // Correct result for this test
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a short property.
  +     */
  +    public void testSetNestedShort() {
  +
  +        try {
  +            short oldValue = bean.getNested().getShortProperty();
  +            short newValue = oldValue; newValue++;
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.shortProperty",
  +                                            new Short(newValue));
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getShortProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a String property.
  +     */
  +    public void testSetNestedString() {
  +
  +        try {
  +            String oldValue = bean.getNested().getStringProperty();
  +            String newValue = oldValue + " Extra Value";
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.stringProperty",
  +                                            newValue);
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getStringProperty());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on an unknown property name.
  +     */
  +    public void testSetNestedUnknown() {
  +
  +        try {
  +            String newValue = "New String Value";
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.unknown",
  +                                            newValue);
  +            fail("Should have thrown NoSuchMethodException");
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            ; // Correct result for this test
  +        }        
  +
  +    }
  +
  +
  +    /**
  +     * Test setNestedProperty on a write-only String property.
  +     */
  +    public void testSetNestedWriteOnly() {
  +
  +        try {
  +            String oldValue = bean.getNested().getWriteOnlyPropertyValue();
  +            String newValue = oldValue + " Extra Value";
  +            PropertyUtils.setNestedProperty(bean,
  +                                            "nested.writeOnlyProperty",
  +                                            newValue);
  +            assertEquals("Matched new value",
  +                         newValue,
  +                         bean.getNested().getWriteOnlyPropertyValue());
  +        } catch (IllegalAccessException e) {
  +            fail("IllegalAccessException");
  +        } catch (IllegalArgumentException e) {
  +            fail("IllegalArgumentException");
  +        } catch (InvocationTargetException e) {
  +            fail("InvocationTargetException");
  +        } catch (NoSuchMethodException e) {
  +            fail("NoSuchMethodException");
  +        }        
  +
  +    }
  +
  +
  +    /**
        * Test setSimpleProperty on a boolean property.
        */
       public void testSetSimpleBoolean() {
  @@ -636,9 +1169,9 @@
               PropertyUtils.setSimpleProperty(bean,
                                               "booleanProperty",
                                               new Boolean(newValue));
  -            assertEquals("Matched new value",
  -                         newValue,
  -                         bean.getBooleanProperty());
  +            assert("Matched new value",
  +                   newValue ==
  +                   bean.getBooleanProperty());
           } catch (IllegalAccessException e) {
               fail("IllegalAccessException");
           } catch (IllegalArgumentException e) {
  
  
  

Reply via email to