PageRenderTime 25ms CodeModel.GetById 16ms app.highlight 7ms RepoModel.GetById 0ms app.codeStats 0ms

/apache-log4j-1.2.17/tests/src/java/org/apache/log4j/LevelTest.java

#
Java | 267 lines | 119 code | 34 blank | 114 comment | 2 complexity | 41080b3ab0c136ccc902776c1d33ff6b MD5 | raw file
Possible License(s): Apache-2.0
  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
 18package org.apache.log4j;
 19
 20import junit.framework.TestCase;
 21
 22import org.apache.log4j.util.SerializationTestHelper;
 23import java.util.Locale;
 24
 25
 26/**
 27 * Tests of Level.
 28 *
 29 * @author Curt Arnold
 30 * @since 1.2.12
 31 */
 32public class LevelTest extends TestCase {
 33  /**
 34   * Constructs new instance of test.
 35   * @param name test name.
 36   */
 37  public LevelTest(final String name) {
 38    super(name);
 39  }
 40
 41  /**
 42   * Serialize Level.INFO and check against witness.
 43   * @throws Exception if exception during test.
 44   *
 45   */
 46  public void testSerializeINFO() throws Exception {
 47    int[] skip = new int[] {  };
 48    SerializationTestHelper.assertSerializationEquals(
 49      "witness/serialization/info.bin", Level.INFO, skip, Integer.MAX_VALUE);
 50  }
 51
 52  /**
 53   * Deserialize witness and see if resolved to Level.INFO.
 54   * @throws Exception if exception during test.
 55   */
 56  public void testDeserializeINFO() throws Exception {
 57    Object obj =
 58      SerializationTestHelper.deserializeStream(
 59        "witness/serialization/info.bin");
 60    assertTrue(obj instanceof Level);
 61    Level info = (Level) obj;
 62    assertEquals("INFO", info.toString());
 63    //
 64    //  JDK 1.1 doesn't support readResolve necessary for the assertion
 65    if (!System.getProperty("java.version").startsWith("1.1.")) {
 66       assertTrue(obj == Level.INFO);
 67    }
 68  }
 69
 70  /**
 71   * Tests that a custom level can be serialized and deserialized
 72   * and is not resolved to a stock level.
 73   *
 74   * @throws Exception if exception during test.
 75   */
 76  public void testCustomLevelSerialization() throws Exception {
 77    CustomLevel custom = new CustomLevel();
 78    Object obj = SerializationTestHelper.serializeClone(custom);
 79    assertTrue(obj instanceof CustomLevel);
 80
 81    CustomLevel clone = (CustomLevel) obj;
 82    assertEquals(Level.INFO.level, clone.level);
 83    assertEquals(Level.INFO.levelStr, clone.levelStr);
 84    assertEquals(Level.INFO.syslogEquivalent, clone.syslogEquivalent);
 85  }
 86
 87  /**
 88   * Custom level to check that custom levels are
 89   * serializable, but not resolved to a plain Level.
 90   */
 91  private static class CustomLevel extends Level {
 92    private static final long serialVersionUID = 1L;
 93      /**
 94       * Create an instance of CustomLevel.
 95       */
 96    public CustomLevel() {
 97      super(
 98        Level.INFO.level, Level.INFO.levelStr, Level.INFO.syslogEquivalent);
 99    }
100  }
101
102    /**
103     * Tests Level.TRACE_INT.
104     */
105  public void testTraceInt() {
106      assertEquals(5000, Level.TRACE_INT);
107  }
108
109    /**
110     * Tests Level.TRACE.
111     */
112  public void testTrace() {
113      assertEquals("TRACE", Level.TRACE.toString());
114      assertEquals(5000, Level.TRACE.toInt());
115      assertEquals(7, Level.TRACE.getSyslogEquivalent());
116  }
117
118    /**
119     * Tests Level.toLevel(Level.TRACE_INT).
120     */
121  public void testIntToTrace() {
122      Level trace = Level.toLevel(5000);
123      assertEquals("TRACE", trace.toString());
124  }
125
126    /**
127     * Tests Level.toLevel("TRACE");
128     */
129  public void testStringToTrace() {
130        Level trace = Level.toLevel("TRACE");
131        assertEquals("TRACE", trace.toString());
132  }
133
134    /**
135     * Tests that Level extends Priority.
136     */
137  public void testLevelExtendsPriority() {
138      assertTrue(Priority.class.isAssignableFrom(Level.class));
139  }
140
141    /**
142     * Tests Level.OFF.
143     */
144  public void testOFF() {
145    assertTrue(Level.OFF instanceof Level);
146  }
147
148    /**
149     * Tests Level.FATAL.
150     */
151    public void testFATAL() {
152      assertTrue(Level.FATAL instanceof Level);
153    }
154
155    /**
156     * Tests Level.ERROR.
157     */
158    public void testERROR() {
159      assertTrue(Level.ERROR instanceof Level);
160    }
161
162    /**
163     * Tests Level.WARN.
164     */
165    public void testWARN() {
166      assertTrue(Level.WARN instanceof Level);
167    }
168
169    /**
170     * Tests Level.INFO.
171     */
172    public void testINFO() {
173      assertTrue(Level.INFO instanceof Level);
174    }
175
176    /**
177     * Tests Level.DEBUG.
178     */
179    public void testDEBUG() {
180      assertTrue(Level.DEBUG instanceof Level);
181    }
182
183    /**
184     * Tests Level.TRACE.
185     */
186    public void testTRACE() {
187      assertTrue(Level.TRACE instanceof Level);
188    }
189
190    /**
191     * Tests Level.ALL.
192     */
193    public void testALL() {
194      assertTrue(Level.ALL instanceof Level);
195    }
196
197    /**
198     * Tests Level.serialVersionUID.
199     */
200    public void testSerialVersionUID() {
201      assertEquals(3491141966387921974L, Level.serialVersionUID);
202    }
203
204    /**
205     * Tests Level.toLevel(Level.All_INT).
206     */
207  public void testIntToAll() {
208      Level level = Level.toLevel(Level.ALL_INT);
209      assertEquals("ALL", level.toString());
210  }
211
212    /**
213     * Tests Level.toLevel(Level.FATAL_INT).
214     */
215  public void testIntToFatal() {
216      Level level = Level.toLevel(Level.FATAL_INT);
217      assertEquals("FATAL", level.toString());
218  }
219
220
221    /**
222     * Tests Level.toLevel(Level.OFF_INT).
223     */
224  public void testIntToOff() {
225      Level level = Level.toLevel(Level.OFF_INT);
226      assertEquals("OFF", level.toString());
227  }
228
229    /**
230     * Tests Level.toLevel(17, Level.FATAL).
231     */
232  public void testToLevelUnrecognizedInt() {
233      Level level = Level.toLevel(17, Level.FATAL);
234      assertEquals("FATAL", level.toString());
235  }
236
237    /**
238     * Tests Level.toLevel(null, Level.FATAL).
239     */
240  public void testToLevelNull() {
241      Level level = Level.toLevel(null, Level.FATAL);
242      assertEquals("FATAL", level.toString());
243  }
244
245    /**
246     * Test that dotless lower I + "nfo" is recognized as INFO.
247     */
248  public void testDotlessLowerI() {
249      Level level = Level.toLevel("\u0131nfo");
250      assertEquals("INFO", level.toString());
251  }
252
253    /**
254     * Test that dotted lower I + "nfo" is recognized as INFO
255     * even in Turkish locale.
256     */
257  public void testDottedLowerI() {
258      Locale defaultLocale = Locale.getDefault();
259      Locale turkey = new Locale("tr", "TR");
260      Locale.setDefault(turkey);
261      Level level = Level.toLevel("info");
262      Locale.setDefault(defaultLocale);
263      assertEquals("INFO", level.toString());
264  }
265
266
267}