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  
18  package org.apache.log4j;
19  
20  import junit.framework.TestCase;
21  import junit.framework.TestSuite;
22  import junit.framework.Test;
23  
24  import org.apache.log4j.util.Compare;
25  import org.apache.log4j.xml.XLevel;
26  
27  /**
28     Test the configuration of the hierarchy-wide threshold.
29  
30     @author  Ceki Gülcü
31  */
32  public class HierarchyThresholdTestCase extends TestCase {
33    
34    static String TEMP = "output/temp";
35    static Logger logger = Logger.getLogger(HierarchyThresholdTestCase.class);
36  
37    public HierarchyThresholdTestCase(String name) {
38      super(name);
39    }
40  
41    public void setUp() {
42    }
43    
44    public void tearDown() {
45      System.out.println("Tearing down test case.");
46      logger.getLoggerRepository().resetConfiguration();
47    }
48    
49    public void test1() throws Exception {
50      PropertyConfigurator.configure("input/hierarchyThreshold1.properties");
51      common();
52      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.1"));
53    }
54  
55    public void test2() throws Exception {
56      PropertyConfigurator.configure("input/hierarchyThreshold2.properties");
57      common();
58      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.2"));
59    }
60  
61    public void test3() throws Exception {
62      PropertyConfigurator.configure("input/hierarchyThreshold3.properties");
63      common();
64      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.3"));
65    }
66  
67    public void test4() throws Exception {
68      PropertyConfigurator.configure("input/hierarchyThreshold4.properties");
69      common();
70      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.4"));
71    }
72  
73    public void test5() throws Exception {
74      PropertyConfigurator.configure("input/hierarchyThreshold5.properties");
75      common();
76      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.5"));
77    }
78  
79    public void test6() throws Exception {
80      PropertyConfigurator.configure("input/hierarchyThreshold6.properties");
81      common();
82      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.6"));
83    }
84  
85    public void test7() throws Exception {
86      PropertyConfigurator.configure("input/hierarchyThreshold7.properties");
87      common();
88      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.7"));
89    }
90  
91    public void test8() throws Exception {
92      PropertyConfigurator.configure("input/hierarchyThreshold8.properties");
93      common();
94      assertTrue(Compare.compare(TEMP, "witness/hierarchyThreshold.8"));
95    }
96  
97  
98    static 
99    void common() {
100     String oldThreadName = Thread.currentThread().getName();
101     Thread.currentThread().setName("main");
102 
103     logger.log(XLevel.TRACE, "m0");
104     logger.debug("m1");
105     logger.info("m2");
106     logger.warn("m3");
107     logger.error("m4");
108     logger.fatal("m5");
109 
110     Thread.currentThread().setName(oldThreadName);
111   }
112 
113   public static Test suite() {
114     TestSuite suite = new TestSuite();
115     suite.addTest(new HierarchyThresholdTestCase("test1"));
116     suite.addTest(new HierarchyThresholdTestCase("test2"));
117     suite.addTest(new HierarchyThresholdTestCase("test3"));
118     suite.addTest(new HierarchyThresholdTestCase("test4"));
119     suite.addTest(new HierarchyThresholdTestCase("test5"));
120     suite.addTest(new HierarchyThresholdTestCase("test6"));
121     suite.addTest(new HierarchyThresholdTestCase("test7"));
122     suite.addTest(new HierarchyThresholdTestCase("test8"));
123     return suite;
124   }
125 }