    1   /*
    2    * $Id: TestFormPropertyConfig.java 471754 2006-11-06 14:55:09Z husted $
    3    *
    4    * Licensed to the Apache Software Foundation (ASF) under one
    5    * or more contributor license agreements.  See the NOTICE file
    6    * distributed with this work for additional information
    7    * regarding copyright ownership.  The ASF licenses this file
    8    * to you under the Apache License, Version 2.0 (the
    9    * "License"); you may not use this file except in compliance
    10   * with the License.  You may obtain a copy of the License at
    11   *
    12   *  http://www.apache.org/licenses/LICENSE-2.0
    13   *
    14   * Unless required by applicable law or agreed to in writing,
    15   * software distributed under the License is distributed on an
    16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    17   * KIND, either express or implied.  See the License for the
    18   * specific language governing permissions and limitations
    19   * under the License.
    20   */
    21  package org.apache.struts.config;
    22
    23  import junit.framework.TestCase;
    24
    25  /**
    26   * Unit tests for the <code>org.apache.struts.config.FormPropertyConfig</code>
    27   * class.
    28   *
    29   * @version $Rev: 471754 $ $Date: 2005-05-21 19:06:53 -0400 (Sat, 21 May 2005)
    30   *          $
    31   */
    32  public class TestFormPropertyConfig extends TestCase {
    33      public void testBasicInherit()
    34          throws Exception {
    35          FormPropertyConfig base =
    36              new FormPropertyConfig("base", "java.lang.String[]", "", 10);
    37          String baseCount = "10";
    38
    39          base.setProperty("count", baseCount);
    40
    41          FormPropertyConfig sub = new FormPropertyConfig();
    42
    43          sub.setName("base");
    44
    45          sub.inheritFrom(base);
    46
    47          assertEquals("Type was not inherited", base.getType(), sub.getType());
    48          assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial());
    49          assertEquals("Size was not inherited", base.getSize(), sub.getSize());
    50          assertEquals("Arbitrary config property was not inherited", baseCount,
    51              sub.getProperty("count"));
    52      }
    53
    54      public void testInheritWithInitialOverride()
    55          throws Exception {
    56          FormPropertyConfig base =
    57              new FormPropertyConfig("base", "java.lang.String", "value");
    58
    59          FormPropertyConfig sub = new FormPropertyConfig();
    60
    61          sub.setName("base");
    62
    63          String initial = "otherValue";
    64
    65          sub.setInitial(initial);
    66
    67          sub.inheritFrom(base);
    68
    69          assertEquals("Type was not inherited", base.getType(), sub.getType());
    70          assertEquals("Initial is incorrect", initial, sub.getInitial());
    71          assertEquals("Size is incorrect", base.getSize(), sub.getSize());
    72      }
    73
    74      public void testInheritWithTypeOverride()
    75          throws Exception {
    76          FormPropertyConfig base =
    77              new FormPropertyConfig("base", "java.lang.String", "");
    78
    79          FormPropertyConfig sub = new FormPropertyConfig();
    80
    81          sub.setName("base");
    82          sub.setType("java.lang.Integer");
    83
    84          sub.inheritFrom(base);
    85
    86          assertEquals("Type is incorrect", "java.lang.Integer", sub.getType());
    87          assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial());
    88          assertEquals("Size is incorrect", base.getSize(), sub.getSize());
    89      }
    90
    91      public void testInheritWithTypeOverride2()
    92          throws Exception {
    93          FormPropertyConfig base =
    94              new FormPropertyConfig("base", "java.lang.String", "");
    95
    96          FormPropertyConfig sub = new FormPropertyConfig();
    97
    98          sub.setName("base");
    99
    100         String type = "java.lang.Integer[]";
    101         int size = 10;
    102
    103         sub.setType(type);
    104         sub.setSize(size);
    105
    106         sub.inheritFrom(base);
    107
    108         assertEquals("Type is incorrect", type, sub.getType());
    109         assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial());
    110         assertEquals("Size is incorrect", size, sub.getSize());
    111     }
    112
    113     public void testInheritWithSizeOverride()
    114         throws Exception {
    115         FormPropertyConfig base =
    116             new FormPropertyConfig("base", "java.lang.String[]", "", 20);
    117
    118         FormPropertyConfig sub = new FormPropertyConfig();
    119
    120         sub.setName("base");
    121
    122         int size = 50;
    123
    124         sub.setSize(size);
    125
    126         sub.inheritFrom(base);
    127
    128         assertEquals("Type was not inherited", base.getType(), sub.getType());
    129         assertEquals("Initial is incorrect", base.getInitial(), sub.getInitial());
    130         assertEquals("Size is incorrect", size, sub.getSize());
    131     }
    132 }