Package edu.brown.logging

Source Code of edu.brown.logging.TestFastLoggingEvent$MockAppender

package edu.brown.logging;

import java.util.regex.Matcher;

import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.LocationInfo;
import org.apache.log4j.spi.LoggingEvent;

import junit.framework.TestCase;

public class TestFastLoggingEvent extends TestCase {

    class MockAppender extends AppenderSkeleton {
        @Override
        protected void append(LoggingEvent event) {
//            System.err.println("Got event: " + event);
           
            TestFastLoggingEvent.this.offset = FastLoggingEvent.getStackOffset(event);
            TestFastLoggingEvent.this.origEvent = event;
            TestFastLoggingEvent.this.origEvent.getLocationInformation();
            TestFastLoggingEvent.this.fastEvent = new FastLoggingEvent(event, TestFastLoggingEvent.this.offset);
            TestFastLoggingEvent.this.fastEvent.getLocationInformation();
        }

        @Override
        public void close() {
            // Nothing
        }
        @Override
        public boolean requiresLayout() {
            return false;
        }
    }

    Logger logger = Logger.getLogger(TestFastLoggingEvent.class);
    int offset;
    LoggingEvent origEvent;
    FastLoggingEvent fastEvent;
   
    @Override
    protected void setUp() throws Exception {
        logger.addAppender(new MockAppender());
        logger.info("TEST LOGGING EVENT");
        assertNotNull(this.origEvent);
        assertNotNull(this.fastEvent);
    }
   
    /**
     * testLocationInfo
     */
    public void testLocationInfo() throws Exception {
        LocationInfo expected = this.origEvent.getLocationInformation();
        assertNotNull(expected);
       
        LocationInfo actual = this.fastEvent.getLocationInformation();
        assertNotNull(actual);
        System.err.println(this.fastEvent.getLocationInformation());
       
        assertEquals(expected.getLineNumber(), actual.getLineNumber());
        assertEquals(expected.getFileName(), actual.getFileName());
        assertEquals(expected.getClassName(), actual.getClassName());
        assertEquals(expected.getMethodName(), actual.getMethodName());
    }
   
    /**
     * testPreProcessorLocationInfoMatcher
     */
    public void testPreProcessorLocationInfoMatcher() {
        String codeLine = "ExecutionSite.java:1958";
        String msg = "Dispatching 1 messages and waiting for the results for InsertCallForwarding #1024611756678316032/0";
        Matcher m = FastLoggingEvent.PREPROCESSOR_PATTERN.matcher(codeLine + " " + msg);
        boolean find = m.find();
        System.err.println(m.group());
        assert(find);
        assertEquals(codeLine, m.group(1) + ":" + m.group(2));
        assertEquals(msg, m.replaceFirst(""));
    }
   
    /**
     * testPreProcessorLocationInfo
     */
    public void testPreProcessorLocationInfo() {
        String fileName = "ExecutionSite.java";
        String lineNum = "1958";
        String msg = "Dispatching 1 messages and waiting for the results for InsertCallForwarding #1024611756678316032/0";
        logger.info(String.format("%s:%s %s", fileName, lineNum, msg));
        assertNotNull(fastEvent);
       
        LocationInfo actual = this.fastEvent.getLocationInformation();
        assertNotNull(actual);
        assertEquals(fileName, actual.getFileName());
        assertEquals(lineNum, actual.getLineNumber());
        assertEquals(msg, fastEvent.getMessage());
    }
   
   
}
TOP

Related Classes of edu.brown.logging.TestFastLoggingEvent$MockAppender

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.