Project Report: fawkez

Packagesummary org.jcoderz.commons

org.jcoderz.commons.LoggableImplTest

LineHitsNoteSource
1  /*
2   * $Id: LoggableImplTest.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.commons;
34   
35   
36  import java.util.Set;
37  import java.util.logging.Level;
38  import junit.framework.TestCase;
39   
40   
41  /**
42   * Test for LoggableImpl class.
43   *
44   * @author Andreas Mandel
45   */
46  public class LoggableImplTest
47        extends TestCase
48  {
49     private static final String TEST_INSTANCE_ID = "TEST_INSTANCE";
50     private static final String TEST_NODE = "TEST_NODE";
51     private static final long TEST_THREAD_ID = 12345L;
52     private static final String TEST_DUMMY_PARAMETER_NAME
53           = "DUMMY";
54     private static final LogMessageInfo TEST_LOG_MESSAGE_INFO
55           = new TestLogMessageInfo();
56   
57     /**
58      * Test for void LoggableImpl(LogMessageInfo, long, String, String).
59      */
60     public final void testLoggableImplLogMessageInfolongStringString ()
61     {
62        final LoggableImpl testObject = new LoggableImpl(null,
63              TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID, TEST_INSTANCE_ID, TEST_NODE);
64   
65        assertEquals("Instance id getter changes value.", TEST_INSTANCE_ID,
66              testObject.getInstanceId());
67        assertEquals("Instance id parameter changes value.", TEST_INSTANCE_ID,
68              testObject.getParameter(LoggableImpl.INSTANCE_ID_PARAMETER_NAME)
69                    .get(0));
70   
71        assertEquals("Node id getter changes value.", TEST_NODE, testObject
72              .getNodeId());
73        assertEquals("Node id parameter changes value.", TEST_NODE, testObject
74              .getParameter(LoggableImpl.NODE_ID_PARAMETER_NAME).get(0));
75   
76        assertEquals("Thread id getter changes value.", TEST_THREAD_ID,
77              testObject.getThreadId());
78        assertEquals("Thread id parameter changes value."new Long(
79              TEST_THREAD_ID), testObject.getParameter(
80              LoggableImpl.THREAD_ID_PARAMETER_NAME).get(0));
81   
82        assertEquals("Symbol of testclass changed.""FOO_SYMBOL",
83              TEST_LOG_MESSAGE_INFO.getSymbol());
84   
85        TEST_LOG_MESSAGE_INFO.formatMessage(nullnull); // coverage
86        TEST_LOG_MESSAGE_INFO.getSolution();
87        TEST_LOG_MESSAGE_INFO.getBusinessImpact();
88     }
89   
90     /** Tests LoggableImpl(LogMessageInfo, long, String, String, Throwable). */
91     public final void testLoggableImplLogMessageInfolongStringStringThrowable ()
92     {
93        final Exception testException = new Exception();
94        final LoggableImpl testObject = new LoggableImpl(null,
95              TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID, TEST_INSTANCE_ID,
96              TEST_NODE, testException);
97   
98        assertEquals("Cause getter changes value.", testException,
99              testObject.getCause());
100     }
101   
102     /** Tests initCause method. */
103     public final void testInitCause ()
104     {
105        final LoggableImpl testObject
106              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
107                 TEST_INSTANCE_ID, TEST_NODE);
108   
109        testObject.initCause(null);
110        assertEquals("Cause getter changes value. (null)"null,
111              testObject.getCause());
112     }
113   
114     /** Test the addParameter, getParameter and getParameterNames method. */
115     public final void testAddParameter ()
116     {
117        final LoggableImpl testObject
118              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
119                 TEST_INSTANCE_ID, TEST_NODE);
120   
121        testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value1");
122        testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value2");
123        testObject.addParameter("FOO_NULL"null);
124        testObject.addParameter("FOO_NULL""value2");
125   
126        assertEquals("Parameter value not as expected 1st.""value1",
127              testObject.getParameter(TEST_DUMMY_PARAMETER_NAME).get(0));
128        assertEquals("Parameter value not as expected 2nd.""value2",
129              testObject.getParameter(TEST_DUMMY_PARAMETER_NAME).get(1));
130        assertEquals("Parameter value (null) not as expected 2st."null,
131              testObject.getParameter("FOO_NULL").get(0));
132   
133        final Set names = testObject.getParameterNames();
134   
135        assertTrue("Parameter name not in list (" + TEST_DUMMY_PARAMETER_NAME
136              + ")", names.contains(TEST_DUMMY_PARAMETER_NAME));
137        assertTrue("Internal parameter name not in list ("
138              + LoggableImpl.EVENT_TIME_PARAMETER_NAME + ")",
139              names.contains(LoggableImpl.EVENT_TIME_PARAMETER_NAME));
140   
141     }
142   
143     /** Tests the getLogMessageInfo method. */
144     public final void testGetLogMessageInfo ()
145     {
146        final LoggableImpl testObject
147              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
148                 TEST_INSTANCE_ID, TEST_NODE);
149   
150        assertEquals("Message info changed?", TEST_LOG_MESSAGE_INFO,
151              testObject.getLogMessageInfo());
152     }
153   
154     /** Tests the get tracking number method. */
155     public final void testGetTrackingNumber ()
156     {
157        final LoggableImpl testObject1
158              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
159                 TEST_INSTANCE_ID, TEST_NODE);
160        final LoggableImpl testObject2
161              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
162                 TEST_INSTANCE_ID, TEST_NODE);
163   
164        assertFalse("Tracking number should never be the same.",
165              testObject1.getTrackingNumber().equals(
166                 testObject2.getTrackingNumber()));
167     }
168   
169     /** Tests the GetTrackingNumberInheritance. */
170     public final void testGetTrackingNumberInheritance ()
171     {
172        final BaseException a = new BaseException(TEST_LOG_MESSAGE_INFO);
173        final Loggable b = new BaseException(TEST_LOG_MESSAGE_INFO, a);
174   
175        assertEquals("Tracking number must be inherited from cause.",
176              a.getTrackingNumber(), b.getTrackingNumber());
177     }
178   
179     /** Tests the get event time method. */
180     public final void testGetEventTime ()
181     {
182        final long before = System.currentTimeMillis();
183        final LoggableImpl testObject1
184              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
185                 TEST_INSTANCE_ID, TEST_NODE);
186        final long after = System.currentTimeMillis();
187   
188        assertTrue("Timestamp must be after before mark.",
189              before <= testObject1.getEventTime());
190        assertTrue("Timestamp must be after after mark.",
191              testObject1.getEventTime() <= after);
192     }
193   
194     /** Tests the get node id method. */
195     public final void testGetNodeId ()
196     {
197        final LoggableImpl testObject
198              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
199                 TEST_INSTANCE_ID, TEST_NODE);
200   
201        assertEquals("Node id getter changes value.", TEST_NODE,
202              testObject.getNodeId());
203   
204        final LoggableImpl testNullObject
205              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
206                 TEST_INSTANCE_ID, null);
207   
208        assertEquals("Node id getter changes value (null)."null,
209              testNullObject.getNodeId());
210     }
211   
212     /** Tests the get instance id method. */
213     public final void testGetInstanceId ()
214     {
215        final LoggableImpl testObject
216              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
217                 TEST_INSTANCE_ID, TEST_NODE);
218   
219        assertEquals("Instance id getter changes value.", TEST_INSTANCE_ID,
220              testObject.getInstanceId());
221     }
222   
223     /** Tests the get thread id method. */
224     public final void testGetThreadId ()
225     {
226        final LoggableImpl testObject
227              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
228                 TEST_INSTANCE_ID, TEST_NODE);
229   
230        assertEquals("Thread id getter changes value.", TEST_THREAD_ID,
231              testObject.getThreadId());
232     }
233   
234     /** Tests the get cause method. */
235     public final void testGetCause ()
236     {
237        final LoggableImpl testObject
238              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
239                 TEST_INSTANCE_ID, TEST_NODE);
240        final Exception testException = new Exception();
241   
242        testObject.initCause(testException);
243   
244        assertEquals("Cause getter changes value.", testException,
245              testObject.getCause());
246        assertEquals("Cause getter changes value. (parameter)", testException,
247              testObject.getParameter(LoggableImpl.CAUSE_PARAMETER_NAME)
248                 .get(0));
249   
250     }
251   
252     /** Tests the log method. */
253     public final void testLog ()
254     {
255        final LoggableImpl testObject
256              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
257                 TEST_INSTANCE_ID, TEST_NODE);
258   
259        testObject.log(); // should not throw a exception...
260     }
261   
262     /** Tests the get message method. */
263     public final void testGetMessage ()
264     {
265        final LoggableImpl testObject
266              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
267                 TEST_INSTANCE_ID, TEST_NODE);
268   
269        testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value");
270   
271        final String message = testObject.getMessage();
272 (1)      (1)assertTrue("Message must contain dummy object '" + message + "'.",
273              message.indexOf("DUMMY:value") != -1);
274     }
275   
276     /** Internal test class. */
277     private static final class TestLogMessageInfo
278           extends LogMessageInfoImpl
279           implements LogMessageInfo
280     {
281        static final int INT_VALUE = 4711;
282        static final long serialVersionUID = 1;
283        private TestLogMessageInfo ()
284        {
285           super("FOO_SYMBOL", INT_VALUE, Level.INFO,
286                 "Test Pattern {0} {1,DATE} {1,TIME} DUMMY:{2} ",
287                 "solution", BusinessImpact.MIDDLE, Category.SECURITY,
288                 new String[]
289                    {
290                       LoggableImpl.THREAD_ID_PARAMETER_NAME,
291                       LoggableImpl.EVENT_TIME_PARAMETER_NAME,
292                       TEST_DUMMY_PARAMETER_NAME
293                    },
294                  "Application Foo""Foo""Group Bar""Bar"
295                 );
296        }
297     }
298  }
299   

Findings in this File

c (1) 272 : 7 Use assertSame(x, y) instead of assertTrue(x==y), or assertNotSame(x,y) vs assertFalse(x==y)