You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@avalon.apache.org by do...@apache.org on 2002/09/28 06:05:27 UTC
cvs commit: jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/logger/test config1.xml LogManagerTestCase.java
donaldp 2002/09/27 21:05:27
Modified: . build.xml
src/java/org/apache/avalon/phoenix/components/logger
DefaultLogManager.java
src/test/org/apache/avalon/phoenix/components/logger/test
LogManagerTestCase.java
Added: src/test/org/apache/avalon/phoenix/components/logger/test
config1.xml
Log:
Add first set of unit tests for simple LogKit LogManager portion of LogManager
Revision Changes Path
1.168 +50 -0 jakarta-avalon-phoenix/build.xml
Index: build.xml
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/build.xml,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -r1.167 -r1.168
--- build.xml 15 Sep 2002 02:07:31 -0000 1.167
+++ build.xml 28 Sep 2002 04:05:27 -0000 1.168
@@ -37,12 +37,15 @@
<property name="build.lib" value="${build.dir}/lib"/>
<property name="build.src" value="${build.dir}/src"/>
<property name="build.classes" value="${build.dir}/classes"/>
+ <property name="build.tests" value="${build.dir}/tests"/>
+ <property name="build.testclasses" value="${build.dir}/testclasses"/>
<property name="build.reports" value="${build.dir}/reports"/>
<property name="build.xdoclet" value="${build.dir}/xdoclet"/>
<!-- Set the properties for source directories -->
<property name="src.dir" value="src"/>
<property name="java.dir" value="${src.dir}/java"/>
+ <property name="test.dir" value="${src.dir}/test"/>
<property name="compat.dir" value="${src.dir}/compat"/>
<property name="conf.dir" value="${src.dir}/conf"/>
<property name="script.dir" value="${src.dir}/script"/>
@@ -82,6 +85,12 @@
<pathelement path="${build.classes}" />
</path>
+ <path id="test.class.path">
+ <pathelement location="${build.testclasses}"/>
+ <pathelement location="${junit.jar}"/>
+ <path refid="project.class.path"/>
+ </path>
+
<!-- Main target -->
<target name="main" depends="dist-lite"
description="generates the Phoenix distribution without the javadocs"/>
@@ -219,6 +228,47 @@
<include name="**/*.xdt" />
</fileset>
</copy>
+
+ </target>
+
+ <!-- Compiles the source code -->
+ <target name="test" depends="compile" description="compiles and runs unit tests">
+
+ <mkdir dir="${build.testclasses}"/>
+
+ <javac srcdir="${test.dir}"
+ destdir="${build.testclasses}"
+ debug="${build.debug}"
+ optimize="${build.optimize}"
+ deprecation="${build.deprecation}">
+ <classpath refid="test.class.path" />
+ <src path="${test.dir}" />
+ </javac>
+
+ <copy todir="${build.testclasses}">
+ <fileset dir="${test.dir}">
+ <exclude name="**/*.java" />
+ </fileset>
+ </copy>
+
+ <mkdir dir="${build.tests}"/>
+
+ <junit fork="true"
+ haltonfailure="${junit.failonerror}"
+ printsummary="yes"
+ dir="${build.tests}">
+ <classpath refid="test.class.path"/>
+
+ <formatter type="xml"/> <!-- xml reports for junitreport -->
+ <formatter type="plain" usefile="false"/> <!-- text reports for humans -->
+
+ <batchtest todir="${build.tests}">
+ <fileset dir="${build.testclasses}">
+ <include name="**/test/*TestCase.class"/>
+ <exclude name="**/Abstract*"/>
+ </fileset>
+ </batchtest>
+ </junit>
</target>
1.21 +4 -2 jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/logger/DefaultLogManager.java
Index: DefaultLogManager.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/java/org/apache/avalon/phoenix/components/logger/DefaultLogManager.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- DefaultLogManager.java 21 Sep 2002 02:56:28 -0000 1.20
+++ DefaultLogManager.java 28 Sep 2002 04:05:27 -0000 1.21
@@ -48,8 +48,10 @@
final ClassLoader classLoader )
throws Exception
{
+ final String sarName = metaData.getName();
+
final DefaultContext context = new DefaultContext();
- context.put( BlockContext.APP_NAME, metaData.getName() );
+ context.put( BlockContext.APP_NAME, sarName );
context.put( BlockContext.APP_HOME_DIR, metaData.getHomeDirectory() );
context.put( "classloader", classLoader );
@@ -58,7 +60,7 @@
if( getLogger().isDebugEnabled() )
{
final String message =
- REZ.getString( "logger-create", metaData.getName(), version );
+ REZ.getString( "logger-create", sarName, version );
getLogger().debug( message );
}
final LoggerManager loggerManager = createLoggerManager( version );
1.2 +117 -2 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/logger/test/LogManagerTestCase.java
Index: LogManagerTestCase.java
===================================================================
RCS file: /home/cvs/jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/logger/test/LogManagerTestCase.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- LogManagerTestCase.java 28 Sep 2002 02:44:03 -0000 1.1
+++ LogManagerTestCase.java 28 Sep 2002 04:05:27 -0000 1.2
@@ -7,7 +7,21 @@
*/
package org.apache.avalon.phoenix.components.logger.test;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
import junit.framework.TestCase;
+import org.apache.avalon.excalibur.io.FileUtil;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.DefaultConfigurationBuilder;
+import org.apache.avalon.framework.container.ContainerUtil;
+import org.apache.avalon.framework.logger.ConsoleLogger;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.phoenix.components.logger.DefaultLogManager;
+import org.apache.avalon.phoenix.interfaces.LogManager;
+import org.apache.avalon.phoenix.metadata.BlockListenerMetaData;
+import org.apache.avalon.phoenix.metadata.BlockMetaData;
+import org.apache.avalon.phoenix.metadata.SarMetaData;
/**
* An basic test case for the LogManager.
@@ -18,8 +32,109 @@
public class LogManagerTestCase
extends TestCase
{
- public LogManagerTestCase( String name )
+ public static final String DEFAULT_LOGFILE = "logs/default.log";
+ public static final String BLOCK_LOGFILE = "logs/myBlock.log";
+
+ private File m_baseDirectory;
+
+ public LogManagerTestCase( final String name )
{
super( name );
+ }
+
+ protected void setUp() throws Exception
+ {
+ m_baseDirectory = new File( "test" );
+ m_baseDirectory.mkdirs();
+ }
+
+ private SarMetaData createSarMetaData( final String subdir )
+ {
+ final BlockMetaData[] blocks = new BlockMetaData[ 0 ];
+ final BlockListenerMetaData[] listeners = new BlockListenerMetaData[ 0 ];
+ final File homeDirectory = new File( m_baseDirectory, subdir );
+ return new SarMetaData( "test",
+ homeDirectory,
+ blocks,
+ listeners );
+ }
+
+ private LogManager createLogManager()
+ {
+ final DefaultLogManager logManager = new DefaultLogManager();
+ ContainerUtil.enableLogging( logManager, new ConsoleLogger() );
+ return logManager;
+ }
+
+ public void testBasic()
+ throws Exception
+ {
+ final int index = 1;
+ final Logger hierarchy = createHierarchy( index );
+ runLoggerTest( hierarchy, DEFAULT_LOGFILE, index );
+
+ final Logger childLogger = hierarchy.getChildLogger( "myBlock" );
+ runLoggerTest( childLogger, BLOCK_LOGFILE, index );
+ }
+
+ private void runLoggerTest( final Logger logger,
+ final String logfile,
+ final int index )
+ {
+ final long before = getFileSize( index, logfile );
+ logger.warn( "Danger Will Robinson, Danger!" );
+ final long after = getFileSize( index, logfile );
+
+ assertFileGrew( logfile, before, after );
+ }
+
+ private void assertFileGrew( final String logfile, long before, long after )
+ {
+ assertTrue( "Did " + logfile + " file grow?, Before: " + before + ", After: " + after,
+ before < after );
+ }
+
+ private long getFileSize( final int index, final String filename )
+ {
+ final String baseDir = getBaseDir( index );
+ final File base = new File( m_baseDirectory, baseDir );
+ final File file = new File( base, filename );
+ return file.length();
+ }
+
+ private Logger createHierarchy( final int index )
+ throws Exception
+ {
+ final Configuration logs = loadConfig( "config" + index + ".xml" );
+ final LogManager logManager = createLogManager();
+ final SarMetaData sarMetaData = createSarMetaData( getBaseDir( index ) );
+
+ cleanHomeDirectory( sarMetaData );
+
+ return logManager.createHierarchy( sarMetaData,
+ logs,
+ getClass().getClassLoader() );
+ }
+
+ private String getBaseDir( final int index )
+ {
+ return "test" + index;
+ }
+
+ private void cleanHomeDirectory( final SarMetaData sarMetaData )
+ throws IOException
+ {
+ final File homeDirectory = sarMetaData.getHomeDirectory();
+ FileUtil.deleteDirectory( homeDirectory );
+ homeDirectory.mkdirs();
+ }
+
+ private Configuration loadConfig( final String config )
+ throws Exception
+ {
+ final DefaultConfigurationBuilder builder = new DefaultConfigurationBuilder();
+ final InputStream resource =
+ getClass().getResourceAsStream( config );
+ return builder.build( resource );
}
}
1.1 jakarta-avalon-phoenix/src/test/org/apache/avalon/phoenix/components/logger/test/config1.xml
Index: config1.xml
===================================================================
<logs version="1.0">
<category name="" target="default-target" priority="DEBUG"/>
<category name="myBlock" target="myBlock-target" priority="DEBUG"/>
<log-target name="default-target" location="/logs/default.log"/>
<log-target name="myBlock-target" location="/logs/myBlock.log"/>
</logs>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>