1 package org.apache.commons.jcs.engine.logging;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import org.apache.commons.jcs.engine.logging.behavior.ICacheEvent;
24 import org.apache.log4j.Level;
25 import org.apache.log4j.Logger;
26 import org.apache.log4j.PatternLayout;
27 import org.apache.log4j.WriterAppender;
28
29 import java.io.StringWriter;
30
31
32 public class CacheEventLoggerDebugLoggerUnitTest
33 extends TestCase
34 {
35
36
37 public void testLogICacheEvent_normal()
38 {
39
40 String logCategoryName = "testLogEvent_normal";
41
42 String source = "mySource";
43 String region = "my region";
44 String eventName = "MyEventName";
45 String optionalDetails = "SomeExtraData";
46 String key = "my key";
47
48 StringWriter stringWriter = new StringWriter();
49 configureLogger( stringWriter, logCategoryName );
50
51 CacheEventLoggerDebugLogger logger = new CacheEventLoggerDebugLogger();
52 logger.setLogCategoryName( logCategoryName );
53
54 ICacheEvent<String> event = logger.createICacheEvent( source, region, eventName, optionalDetails, key );
55
56
57 logger.logICacheEvent( event );
58
59
60 String result = stringWriter.toString();
61 assertTrue( "An event with the source should have been logged:" + result, result.indexOf( source ) != -1 );
62 assertTrue( "An event with the region should have been logged:" + result, result.indexOf( region ) != -1 );
63 assertTrue( "An event with the event name should have been logged:" + result, result.indexOf( eventName ) != -1 );
64 assertTrue( "An event with the optionalDetails should have been logged:" + result, result.indexOf( optionalDetails ) != -1 );
65 assertTrue( "An event with the key should have been logged:" + result, result.indexOf( key ) != -1 );
66 }
67
68
69 public void testLogApplicationEvent_normal()
70 {
71
72 String logCategoryName = "testLogApplicationEvent_normal";
73
74 String source = "mySource";
75 String eventName = "MyEventName";
76 String optionalDetails = "SomeExtraData";
77
78 StringWriter stringWriter = new StringWriter();
79 configureLogger( stringWriter, logCategoryName );
80
81 CacheEventLoggerDebugLogger logger = new CacheEventLoggerDebugLogger();
82 logger.setLogCategoryName( logCategoryName );
83
84
85 logger.logApplicationEvent( source, eventName, optionalDetails );
86
87
88 String result = stringWriter.toString();
89 assertTrue( "An event with the source should have been logged:" + result, result.indexOf( source ) != -1 );
90 assertTrue( "An event with the event name should have been logged:" + result, result.indexOf( eventName ) != -1 );
91 assertTrue( "An event with the optionalDetails should have been logged:" + result, result.indexOf( optionalDetails ) != -1 );
92 }
93
94
95 public void testLogError_normal()
96 {
97
98 String logCategoryName = "testLogApplicationEvent_normal";
99
100 String source = "mySource";
101 String eventName = "MyEventName";
102 String errorMessage = "SomeExtraData";
103
104 StringWriter stringWriter = new StringWriter();
105 configureLogger( stringWriter, logCategoryName );
106
107 CacheEventLoggerDebugLogger logger = new CacheEventLoggerDebugLogger();
108 logger.setLogCategoryName( logCategoryName );
109
110
111 logger.logError( source, eventName, errorMessage );
112
113
114 String result = stringWriter.toString();
115 assertTrue( "An event with the source should have been logged:" + result, result.indexOf( source ) != -1 );
116 assertTrue( "An event with the event name should have been logged:" + result, result.indexOf( eventName ) != -1 );
117 assertTrue( "An event with the errorMessage should have been logged:" + result, result.indexOf( errorMessage ) != -1 );
118 }
119
120
121
122
123
124
125
126 private void configureLogger( StringWriter stringWriter, String loggerName )
127 {
128 Logger logger = Logger.getLogger( loggerName );
129 WriterAppender appender = null;
130
131 try
132 {
133 appender = new WriterAppender( new PatternLayout(), stringWriter );
134 }
135 catch ( Exception e )
136 {
137
138 }
139
140 logger.addAppender( appender );
141 logger.setLevel( Level.DEBUG );
142 }
143 }