    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *     http://www.apache.org/licenses/LICENSE-2.0
    10   *
    11   * Unless required by applicable law or agreed to in writing, software
    12   * distributed under the License is distributed on an "AS IS" BASIS,
    13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14   * See the License for the specific language governing permissions and
    15   * limitations under the License.
    16   */
    17  package org.apache.commons.configuration.beanutils;
    18
    19  import java.util.HashMap;
    20  import java.util.Map;
    21
    22  import org.apache.commons.configuration.PropertiesConfiguration;
    23
    24  import junit.framework.TestCase;
    25
    26  /***
    27   * Test class for DefaultBeanFactory.
    28   *
    29   * @since 1.3
    30   * @author Oliver Heger
    31   * @version $Id: TestDefaultBeanFactory.java 439648 2006-09-02 20:42:10Z oheger $
    32   */
    33  public class TestDefaultBeanFactory extends TestCase
    34  {
    35      /*** The object to be tested. */
    36      DefaultBeanFactory factory;
    37
    38      protected void setUp() throws Exception
    39      {
    40          super.setUp();
    41          factory = new DefaultBeanFactory();
    42      }
    43
    44      /***
    45       * Tests obtaining the default class. This should be null.
    46       */
    47      public void testGetDefaultBeanClass()
    48      {
    49          assertNull("Default class is not null", factory.getDefaultBeanClass());
    50      }
    51
    52      /***
    53       * Tests creating a bean.
    54       */
    55      public void testCreateBean() throws Exception
    56      {
    57          Object bean = factory.createBean(PropertiesConfiguration.class,
    58                  new TestBeanDeclaration(), null);
    59          assertNotNull("New bean is null", bean);
    60          assertEquals("Bean is of wrong class", PropertiesConfiguration.class,
    61                  bean.getClass());
    62          PropertiesConfiguration config = (PropertiesConfiguration) bean;
    63          assertTrue("Bean was not initialized", config
    64                  .isThrowExceptionOnMissing());
    65      }
    66
    67      /***
    68       * A simple implementation of BeanDeclaration used for testing purposes.
    69       */
    70      static class TestBeanDeclaration implements BeanDeclaration
    71      {
    72          public String getBeanFactoryName()
    73          {
    74              return null;
    75          }
    76
    77          public Object getBeanFactoryParameter()
    78          {
    79              return null;
    80          }
    81
    82          public String getBeanClassName()
    83          {
    84              return null;
    85          }
    86
    87          public Map getBeanProperties()
    88          {
    89              Map props = new HashMap();
    90              props.put("throwExceptionOnMissing", Boolean.TRUE);
    91              return props;
    92          }
    93
    94          public Map getNestedBeanDeclarations()
    95          {
    96              return null;
    97          }
    98      }
    99  }