All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.marketcetera.util.test.TestCaseBase Maven / Gradle / Ivy

There is a newer version: 4.1.1
Show newest version
package org.marketcetera.util.test;

import java.io.File;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.spi.LoggingEvent;
import org.junit.Before;


/**
 * Base class for test cases.
 * 
 * @author [email protected]
 * @since 0.5.0
 * @version $Id: TestCaseBase.java 16154 2012-07-14 16:34:05Z colin $
 */

/* $License$ */

public class TestCaseBase
{

    // CLASS DATA.

    /**
     * The root directory for test files.
     */

    protected static final String DIR_ROOT=
        "src"+File.separator+"test"+ //$NON-NLS-1$ //$NON-NLS-2$
        File.separator+"sample_data"; //$NON-NLS-1$

    /**
     * The root directory for target files.
     */

    protected static final String DIR_TARGET=
        "target"; //$NON-NLS-1$

    /**
     * The root directory for class files.
     */

    protected static final String DIR_CLASSES=
        DIR_TARGET+File.separator+"classes"; //$NON-NLS-1$

    /**
     * The root directory for test class files.
     */

    protected static final String DIR_TEST_CLASSES=
        DIR_TARGET+File.separator+"test-classes"; //$NON-NLS-1$


    // INSTANCE DATA.

    private LogTestAssist mLogAssist;


    // CLASS METHODS.

    /**
     * Sets the level of the root logger to the given level.
     *
     * @param level The level.
     */

    protected static void setDefaultLevel
        (Level level)
    {
        LogTestAssist.setDefaultLevel(level);
    }

    /**
     * Sets the level of the logger with the given name to the given
     * level.
     *
     * @param name The logger name.
     * @param level The level.
     */

    protected static void setLevel
        (String name,
         Level level)
    {
        LogTestAssist.setLevel(name,level);
    }

    /**
     * Asserts that the contents of the given event match the given
     * expected level, logger name, message, and location.
     *
     * @param event The event.
     * @param level The expected level. Use null to indicate "don't
     * care".
     * @param logger The expected logger name. Use null to indicate
     * "don't care".
     * @param message The expected message. Use null to indicate
     * "don't care".
     * @param location The expected location. Use null to indicate
     * "don't care".
     */

    protected static void assertEvent
        (LoggingEvent event,
         Level level,
         String logger,
         String message,
         String location)
    {
        LogTestAssist.assertEvent(event,level,logger,
                                  message,location);
    }


    // INSTANCE METHODS.

    /**
     * Sets up the receiver's collector of retained events as part of
     * each test's fixture.
     */

    @Before
    public void setupTestCaseBase()
    {
        mLogAssist=new LogTestAssist();
        BasicConfigurator.configure(getAppender());
    }

    /**
     * Returns the receiver's log message helper.
     *
     * @return The helper.
     */

    protected LogTestAssist getLogAssist()
    {
        return mLogAssist;
    }

    /**
     * Returns the receiver's collector (appender) of retained events.
     *
     * @return The appender.
     */

    protected MemoryAppender getAppender()
    {
        return getLogAssist().getAppender();
    }

    /**
     * Asserts that the receiver's collector contains the given number
     * of events.
     *
     * @param count The number of events.
     */

    protected void assertEventCount
        (int count)
    {
        getLogAssist().assertEventCount(count);
    }

    /**
     * Asserts that the receiver's collector contains no events.
     */

    protected void assertNoEvents()
    {
        getLogAssist().assertNoEvents();
    }

    /**
     * Asserts that the contents of the receiver's collector's most
     * recent event match the given expected level, logger name,
     * message, and location. The assertion fails if the receiver has
     * no events.
     *
     * @param level The expected level. Use null to indicate "don't
     * care".
     * @param logger The expected logger name. Use null to indicate
     * "don't care".
     * @param message The expected message. Use null to indicate
     * "don't care".
     * @param location The expected location. Use null to indicate
     * "don't care".
     */

    protected void assertLastEvent
        (Level level,
         String logger,
         String message,
         String location)
    {
        getLogAssist().assertLastEvent(level,logger,message,location);
    }

    /**
     * Asserts that at least one of the receiver's collector's events
     * matches the given expected level, logger name, message, and
     * location. If the collector has no events, the assertion fails.
     *
     * @param level The expected level. Use null to indicate "don't
     * care".
     * @param logger The expected logger name. Use null to indicate
     * "don't care".
     * @param message The expected message. Use null to indicate
     * "don't care".
     * @param location The expected location. Use null to indicate
     * "don't care".
     */

    protected void assertSomeEvent
        (Level level,
         String logger,
         String message,
         String location)
    {
        getLogAssist().assertSomeEvent(level,logger,message,location);
    }

    /**
     * Asserts that the receiver's collector contains a single event,
     * and that its contents match the given expected level, logger
     * name, message, and location. The collector's list of retained
     * events is cleared upon success.
     *
     * @param level The expected level. Use null to indicate "don't
     * care".
     * @param logger The expected logger name. Use null to indicate
     * "don't care".
     * @param message The expected message. Use null to indicate
     * "don't care".
     * @param location The expected location. Use null to indicate
     * "don't care".
     */

    protected void assertSingleEvent
        (Level level,
         String logger,
         String message,
         String location)
    {
        getLogAssist().assertSingleEvent(level,logger,message,location);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy