    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;
    18
    19  import junit.framework.Test;
    20  import junit.framework.TestCase;
    21  import junit.framework.TestSuite;
    22
    23  import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
    24
    25  /***
    26   * Unit test for simple MultiConfigurationTest.
    27   */
    28  public class TestMultiFileHierarchicalConfiguration
    29      extends TestCase
    30  {
    31      private static String PATTERN1 = "target/test-classes/testMultiConfiguration_${sys:Id}.xml";
    32
    33      /***
    34       * Create the test case
    35       *
    36       * @param testName name of the test case
    37       */
    38      public TestMultiFileHierarchicalConfiguration( String testName )
    39      {
    40          super( testName );
    41      }
    42
    43      /***
    44       * @return the suite of tests being tested
    45       */
    46      public static Test suite()
    47      {
    48          return new TestSuite( TestMultiFileHierarchicalConfiguration.class );
    49      }
    50
    51      /***
    52       * Rigourous Test :-)
    53       */
    54      public void testMultiConfiguration()
    55      {
    56          //set up a reloading strategy
    57          FileChangedReloadingStrategy strategy = new FileChangedReloadingStrategy();
    58          strategy.setRefreshDelay(10000);
    59
    60          MultiFileHierarchicalConfiguration config = new MultiFileHierarchicalConfiguration(PATTERN1);
    61          config.setReloadingStrategy(strategy);
    62
    63          System.setProperty("Id", "1001");
    64          assertTrue(config.getInt("rowsPerPage") == 15);
    65
    66          System.setProperty("Id", "1002");
    67          assertTrue(config.getInt("rowsPerPage") == 25);
    68
    69          System.setProperty("Id", "1003");
    70          assertTrue(config.getInt("rowsPerPage") == 35);
    71      }
    72  }