001: /*
002: * Copyright 2001-2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.commons.logging.jdk14;
018:
019: import java.io.ByteArrayInputStream;
020: import java.io.ByteArrayOutputStream;
021: import java.io.ObjectInputStream;
022: import java.io.ObjectOutputStream;
023:
024: import junit.framework.Test;
025: import junit.framework.TestCase;
026: import junit.framework.TestSuite;
027:
028: import org.apache.commons.logging.Log;
029: import org.apache.commons.logging.LogFactory;
030:
031: /**
032: * <p>TestCase for JDK 1.4 logging when running on a JDK 1.4 system with
033: * zero configuration, and with Log4J not present (so JDK 1.4 logging
034: * should be automatically configured.</p>
035: *
036: * @author Craig R. McClanahan
037: * @version $Revision: 202471 $ $Date: 2005-06-30 04:21:03 +0100 (Thu, 30 Jun 2005) $
038: */
039:
040: public class DefaultConfigTestCase extends TestCase {
041:
042: // ----------------------------------------------------------- Constructors
043:
044: /**
045: * <p>Construct a new instance of this test case.</p>
046: *
047: * @param name Name of the test case
048: */
049: public DefaultConfigTestCase(String name) {
050: super (name);
051: }
052:
053: // ----------------------------------------------------- Instance Variables
054:
055: /**
056: * <p>The {@link LogFactory} implementation we have selected.</p>
057: */
058: protected LogFactory factory = null;
059:
060: /**
061: * <p>The {@link Log} implementation we have selected.</p>
062: */
063: protected Log log = null;
064:
065: // ------------------------------------------- JUnit Infrastructure Methods
066:
067: /**
068: * Set up instance variables required by this test case.
069: */
070: public void setUp() throws Exception {
071: setUpFactory();
072: setUpLog("TestLogger");
073: }
074:
075: /**
076: * Return the tests included in this test suite.
077: */
078: public static Test suite() throws Exception {
079: return (new TestSuite(DefaultConfigTestCase.class));
080: }
081:
082: /**
083: * Tear down instance variables required by this test case.
084: */
085: public void tearDown() {
086: log = null;
087: factory = null;
088: LogFactory.releaseAll();
089: }
090:
091: // ----------------------------------------------------------- Test Methods
092:
093: // Test pristine Log instance
094: public void testPristineLog() {
095:
096: checkLog();
097:
098: }
099:
100: // Test pristine LogFactory instance
101: public void testPristineFactory() {
102:
103: assertNotNull("LogFactory exists", factory);
104: assertEquals("LogFactory class",
105: "org.apache.commons.logging.impl.LogFactoryImpl",
106: factory.getClass().getName());
107:
108: String names[] = factory.getAttributeNames();
109: assertNotNull("Names exists", names);
110: assertEquals("Names empty", 0, names.length);
111:
112: }
113:
114: // Test Serializability of Log instance
115: public void testSerializable() throws Exception {
116:
117: // Serialize and deserialize the instance
118: ByteArrayOutputStream baos = new ByteArrayOutputStream();
119: ObjectOutputStream oos = new ObjectOutputStream(baos);
120: oos.writeObject(log);
121: oos.close();
122: ByteArrayInputStream bais = new ByteArrayInputStream(baos
123: .toByteArray());
124: ObjectInputStream ois = new ObjectInputStream(bais);
125: log = (Log) ois.readObject();
126: ois.close();
127:
128: // Check the characteristics of the resulting object
129: checkLog();
130:
131: }
132:
133: // -------------------------------------------------------- Support Methods
134:
135: // Check the log instance
136: protected void checkLog() {
137:
138: assertNotNull("Log exists", log);
139: assertEquals("Log class",
140: "org.apache.commons.logging.impl.Jdk14Logger", log
141: .getClass().getName());
142:
143: // Can we call level checkers with no exceptions?
144: log.isDebugEnabled();
145: log.isErrorEnabled();
146: log.isFatalEnabled();
147: log.isInfoEnabled();
148: log.isTraceEnabled();
149: log.isWarnEnabled();
150:
151: }
152:
153: // Set up factory instance
154: protected void setUpFactory() throws Exception {
155: factory = LogFactory.getFactory();
156: }
157:
158: // Set up log instance
159: protected void setUpLog(String name) throws Exception {
160: log = LogFactory.getLog(name);
161: }
162:
163: }
|