Home | History | Annotate | Download | only in dummyExt
      1 /**
      2  * Copyright (c) 2004-2011 QOS.ch
      3  * All rights reserved.
      4  *
      5  * Permission is hereby granted, free  of charge, to any person obtaining
      6  * a  copy  of this  software  and  associated  documentation files  (the
      7  * "Software"), to  deal in  the Software without  restriction, including
      8  * without limitation  the rights to  use, copy, modify,  merge, publish,
      9  * distribute,  sublicense, and/or sell  copies of  the Software,  and to
     10  * permit persons to whom the Software  is furnished to do so, subject to
     11  * the following conditions:
     12  *
     13  * The  above  copyright  notice  and  this permission  notice  shall  be
     14  * included in all copies or substantial portions of the Software.
     15  *
     16  * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
     17  * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
     18  * MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
     19  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
     20  * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
     21  * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
     22  * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
     23  *
     24  */
     25 package org.slf4j.dummyExt;
     26 
     27 import java.util.Date;
     28 import java.util.Locale;
     29 import java.util.TimeZone;
     30 
     31 import junit.framework.TestCase;
     32 
     33 import org.apache.log4j.spi.LocationInfo;
     34 import org.apache.log4j.spi.LoggingEvent;
     35 import org.slf4j.MDC;
     36 import org.slf4j.ext.EventData;
     37 import org.slf4j.ext.EventLogger;
     38 
     39 public class EventLoggerTest extends TestCase {
     40 
     41     ListAppender listAppender;
     42     org.apache.log4j.Logger log4;
     43 
     44     final static String EXPECTED_FILE_NAME = "EventLoggerTest.java";
     45 
     46     public EventLoggerTest(String name) {
     47         super(name);
     48     }
     49 
     50     public void setUp() throws Exception {
     51         super.setUp();
     52 
     53         // start from a clean slate for each test
     54 
     55         listAppender = new ListAppender();
     56         listAppender.extractLocationInfo = true;
     57         org.apache.log4j.Logger eventLogger = org.apache.log4j.Logger.getLogger("EventLogger");
     58         eventLogger.addAppender(listAppender);
     59         eventLogger.setLevel(org.apache.log4j.Level.TRACE);
     60         eventLogger.setAdditivity(false);
     61         // Items that apply to any activity
     62         MDC.put("ipAddress", "192.168.1.110");
     63         MDC.put("login", "TestUSer");
     64         MDC.put("hostname", "localhost");
     65         MDC.put("productName", "SLF4J");
     66         MDC.put("locale", Locale.getDefault().getDisplayName());
     67         MDC.put("timezone", TimeZone.getDefault().getDisplayName());
     68 
     69     }
     70 
     71     public void tearDown() throws Exception {
     72         super.tearDown();
     73         MDC.clear();
     74     }
     75 
     76     void verify(LoggingEvent le, String expectedMsg) {
     77         assertEquals(expectedMsg, le.getMessage());
     78         assertEquals(EXPECTED_FILE_NAME, le.getLocationInformation().getFileName());
     79     }
     80 
     81     public void testEventLogger() {
     82         EventData data[] = new EventData[2];
     83         data[0] = new EventData();
     84         data[0].setEventType("Login");
     85         data[0].setEventId("1");
     86         data[0].setEventDateTime(new Date());
     87         data[0].put("Userid", "TestUser");
     88         EventLogger.logEvent(data[0]);
     89 
     90         data[1] = new EventData();
     91         data[1].setEventType("Update");
     92         data[1].setEventId("2");
     93         data[1].setEventDateTime(new Date());
     94         data[1].put("FileName", "/etc/hosts");
     95         EventLogger.logEvent(data[1]);
     96 
     97         assertEquals(2, listAppender.list.size());
     98         for (int i = 0; i < 2; ++i) {
     99             LoggingEvent event = listAppender.list.get(i);
    100             verify(event, data[i].toXML());
    101             LocationInfo li = event.getLocationInformation();
    102             assertEquals(this.getClass().getName(), li.getClassName());
    103             assertEquals(event.getMDC("hostname"), "localhost");
    104         }
    105     }
    106 }