rdonkin     2004/05/10 13:03:14

  Added:       
beanutils/optional/bean-collections/src/test/org/apache/commons/beanutils
                        BeanToPropertyValueTransformerTest.java
  Log:
  Moved tests for collection related classes
  
  Revision  Changes    Path
  1.1                  
jakarta-commons/beanutils/optional/bean-collections/src/test/org/apache/commons/beanutils/BeanToPropertyValueTransformerTest.java
  
  Index: BeanToPropertyValueTransformerTest.java
  ===================================================================
  /*
   * Copyright 2001-2004 The Apache Software Foundation.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */ 

   

  package org.apache.commons.beanutils;

  

  import junit.framework.TestCase;

  

  

  /**

   * Test cases for <code>BeanToPropertyValueTransformer</code>.

   *

   * @author Norm Deane

   */

  public class BeanToPropertyValueTransformerTest extends TestCase {

     

      private static final Integer expectedIntegerValue = new Integer(123);

      private static final Long expectedLongValue = new Long(123);

      private static final Float expectedFloatValue = new Float(123.123f);

      private static final Double expectedDoubleValue = new Double(567879.12344d);

      private static final Boolean expectedBooleanValue = Boolean.TRUE;

      private static final Byte expectedByteValue = new Byte("12");

  

      /**

       * Constructor for BeanToPropertyValueTransformerTest.

       *

       * @param name Name of this test case.

       */

      public BeanToPropertyValueTransformerTest(String name) {

          super(name);

      }

  

      /**

       * Test transform with simple String property.

       */

      public void testTransformWithSimpleStringProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("stringProperty");

          TestBean testBean = new TestBean("foo");

          assertEquals("foo", transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple String property and null value.

       *

       */

      public void testTransformWithSimpleStringPropertyAndNullValue() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("stringProperty");

          TestBean testBean = new TestBean((String) null);

          assertNull(transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple int property.

       */

      public void testTransformWithSimpleIntProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("intProperty");

          TestBean testBean = new TestBean(expectedIntegerValue.intValue());

          assertEquals(expectedIntegerValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple long property.

       */

      public void testTransformWithSimpleLongProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("longProperty");

          TestBean testBean = new TestBean();

          testBean.setLongProperty(expectedLongValue.longValue());

          assertEquals(expectedLongValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple float property.

       */

      public void testTransformWithSimpleFloatProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("floatProperty");

          TestBean testBean = new TestBean(expectedFloatValue.floatValue());

          assertEquals(expectedFloatValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple double property.

       */

      public void testTransformWithSimpleDoubleProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("doubleProperty");

          TestBean testBean = new TestBean(expectedDoubleValue.doubleValue());

          assertEquals(expectedDoubleValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple byte property.

       */

      public void testTransformWithSimpleByteProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("byteProperty");

          TestBean testBean = new TestBean();

          testBean.setByteProperty(expectedByteValue.byteValue());

          assertEquals(expectedByteValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with simple boolean property.

       */

      public void testTransformWithSimpleBooleanProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("booleanProperty");

          TestBean testBean = new TestBean(expectedBooleanValue.booleanValue());

          assertEquals(expectedBooleanValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with write only property.

       */

      public void testTransformWithWriteOnlyProperty() {

          try {

              new BeanToPropertyValueTransformer("writeOnlyProperty").transform(new 
TestBean());

          } catch (IllegalArgumentException e) { 

              /* This is what should happen */

          }

      }

  

      /**

       * Test transform with read only property.

       */

      public void testTransformWithReadOnlyProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("readOnlyProperty");

          TestBean testBean = new TestBean();

          assertEquals(testBean.getReadOnlyProperty(), 
transformer.transform(testBean));

      }

  

      /**

       * Test transform with invalid property.

       */

      public void testTransformWithInvalidProperty() {

          try {

              new BeanToPropertyValueTransformer("bogusProperty").transform(new 
TestBean());

          } catch (IllegalArgumentException e) { 

              /* This is what should happen */

          }

      }

  

      /**

       * Test transform with nested property.

       */

      public void testTransformWithNestedProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("anotherNested.stringProperty");

          TestBean testBean = new TestBean();

          TestBean nestedBean = new TestBean("foo");

          testBean.setAnotherNested(nestedBean);

          assertEquals("foo", transformer.transform(testBean));

      }

  

      /**

       * Test transform with mapped property.

       */

      public void testTransformWithMappedProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("mappedProperty(test-key)");

          TestBean testBean = new TestBean();

  

          // try a valid key

          testBean.setMappedProperty("test-key", "test-value");

          assertEquals("test-value", transformer.transform(testBean));

  

          // now try an invalid key

          transformer = new 
BeanToPropertyValueTransformer("mappedProperty(bogus-key)");

          assertEquals(null, transformer.transform(testBean));

      }

  

      /**

       * Test transform with indexed property.

       */

      public void testTransformWithIndexedProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("intIndexed[0]");

          TestBean testBean = new TestBean();

          testBean.setIntIndexed(0, expectedIntegerValue.intValue());

          assertEquals(expectedIntegerValue, transformer.transform(testBean));

  

          // test index out of range

          transformer = new BeanToPropertyValueTransformer("intIndexed[9999]");

  

          try {

              transformer.transform(testBean);

              fail("Should have thrown an ArrayIndexOutOfBoundsException");

          } catch (ArrayIndexOutOfBoundsException e) { 

              /* this is what should happen */

          }

      }

  

      /**

       * Test transform with nested indexed property.

       */

      public void testTransformWithNestedIndexedProperty() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("anotherNested.intIndexed[0]");

          TestBean testBean = new TestBean();

          TestBean nestedBean = new TestBean();

          nestedBean.setIntIndexed(0, expectedIntegerValue.intValue());

          testBean.setAnotherNested(nestedBean);

          assertEquals(expectedIntegerValue, transformer.transform(testBean));

      }

  

      /**

       * Test transform with null in property path.

       */

      public void testTransformWithNullInPath() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("anotherNested.stringProperty");

  

          try {

              transformer.transform(new TestBean());

              fail("Should have throw IllegalArgumentException");

          } catch (IllegalArgumentException e) { 

              /* ignore this is what should happen */

          }

      }

  

      /**

       * Test transform with null in property path and ignore = true.

       */

      public void testTransformWithNullInPathAndIgnoreTrue() {

          BeanToPropertyValueTransformer transformer = 

              new BeanToPropertyValueTransformer("anotherNested.stringProperty",true);

          assertEquals(null, transformer.transform(new TestBean()));

      }

  }

  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to