Project Report: fawkez

Packagesummary org.jcoderz.commons

org.jcoderz.commons.LoggableImplTest

LineHitsNoteSource
1  /*
2   * $Id: LoggableImplTest.java 1606 2010-02-12 13:48:43Z 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   */
46100 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_THREAD_NAME = "THIS_IS_A_TEST_THREAD_123";
53     private static final String TEST_THREAD_NAME_CUT = "HREAD_123";
54     private static final String TEST_DUMMY_PARAMETER_NAME
55           = "DUMMY";
56100    private static final LogMessageInfo TEST_LOG_MESSAGE_INFO
57           = new TestLogMessageInfo();
58  
59     /**
60      * Test for void LoggableImpl(LogMessageInfo, long, String, String).
61      */
62     public final void testLoggableImplLogMessageInfolongStringString ()
63     {
64100       final LoggableImpl testObject = new LoggableImpl(null,
65              TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID, TEST_THREAD_NAME,
66              TEST_INSTANCE_ID, TEST_NODE);
67  
68100       assertEquals("Instance id getter changes value.", TEST_INSTANCE_ID,
69              testObject.getInstanceId());
70100       assertEquals("Instance id parameter changes value.", TEST_INSTANCE_ID,
71              testObject.getParameter(LoggableImpl.INSTANCE_ID_PARAMETER_NAME)
72                    .get(0));
73  
74100       assertEquals("Node id getter changes value.", TEST_NODE, testObject
75              .getNodeId());
76100       assertEquals("Node id parameter changes value.", TEST_NODE, testObject
77              .getParameter(LoggableImpl.NODE_ID_PARAMETER_NAME).get(0));
78  
79100       assertEquals("Thread id getter changes value.", TEST_THREAD_ID,
80              testObject.getThreadId());
81100       assertEquals("Thread name getter changes value.", TEST_THREAD_NAME,
82            testObject.getThreadName());
83100       assertEquals("Thread id parameter changes value.", new Long(
84              TEST_THREAD_ID), testObject.getParameter(
85              LoggableImpl.THREAD_ID_PARAMETER_NAME).get(0));
86  
87100       assertEquals("Symbol of testclass changed.", "FOO_SYMBOL",
88              TEST_LOG_MESSAGE_INFO.getSymbol());
89  
90100       TEST_LOG_MESSAGE_INFO.formatMessage(null, null); // coverage
91100       TEST_LOG_MESSAGE_INFO.getSolution();
92100       TEST_LOG_MESSAGE_INFO.getBusinessImpact();
93100    }
94  
95     /** Tests LoggableImpl(LogMessageInfo, long, String, String, Throwable). */
96     public final void testLoggableImplLogMessageInfolongStringStringThrowable ()
97     {
98100       final Exception testException = new Exception();
99100       final LoggableImpl testObject = new LoggableImpl(null,
100              TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID, TEST_THREAD_NAME,
101              TEST_INSTANCE_ID, TEST_NODE, testException);
102  
103100       assertEquals("Cause getter changes value.", testException,
104              testObject.getCause());
105100    }
106  
107     /** Tests initCause method. */
108     public final void testInitCause ()
109     {
110100       final LoggableImpl testObject
111              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
112                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
113  
114100       testObject.initCause(null);
115100       assertEquals("Cause getter changes value. (null)", null,
116              testObject.getCause());
117100    }
118  
119     /** Test the addParameter, getParameter and getParameterNames method. */
120     public final void testAddParameter ()
121     {
122100       final LoggableImpl testObject
123              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
124                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
125  
126100       testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value1");
127100       testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value2");
128100       testObject.addParameter("FOO_NULL", null);
129100       testObject.addParameter("FOO_NULL", "value2");
130  
131100       assertEquals("Parameter value not as expected 1st.", "value1",
132              testObject.getParameter(TEST_DUMMY_PARAMETER_NAME).get(0));
133100       assertEquals("Parameter value not as expected 2nd.", "value2",
134              testObject.getParameter(TEST_DUMMY_PARAMETER_NAME).get(1));
135100       assertEquals("Parameter value (null) not as expected 2st.", null,
136              testObject.getParameter("FOO_NULL").get(0));
137  
138100       final Set names = testObject.getParameterNames();
139  
140100       assertTrue("Parameter name not in list (" + TEST_DUMMY_PARAMETER_NAME
141              + ")", names.contains(TEST_DUMMY_PARAMETER_NAME));
142100       assertTrue("Internal parameter name not in list ("
143              + LoggableImpl.EVENT_TIME_PARAMETER_NAME + ")",
144              names.contains(LoggableImpl.EVENT_TIME_PARAMETER_NAME));
145  
146100    }
147  
148     /** Tests the getLogMessageInfo method. */
149     public final void testGetLogMessageInfo ()
150     {
151100       final LoggableImpl testObject
152              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
153                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
154  
155100       assertEquals("Message info changed?", TEST_LOG_MESSAGE_INFO,
156              testObject.getLogMessageInfo());
157100    }
158  
159     /** Tests the get tracking number method. */
160     public final void testGetTrackingNumber ()
161     {
162100       final LoggableImpl testObject1
163              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
164                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
165100       final LoggableImpl testObject2
166              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
167                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
168  
169100       assertFalse("Tracking number should never be the same.",
170              testObject1.getTrackingNumber().equals(
171                 testObject2.getTrackingNumber()));
172100    }
173  
174     /** Tests the GetTrackingNumberInheritance. */
175     public final void testGetTrackingNumberInheritance ()
176     {
177100       final BaseException a = new BaseException(TEST_LOG_MESSAGE_INFO);
178100       final Loggable b = new BaseException(TEST_LOG_MESSAGE_INFO, a);
179  
180100       assertEquals("Tracking number must be inherited from cause.",
181              a.getTrackingNumber(), b.getTrackingNumber());
182100    }
183  
184     /** Tests the get event time method. */
185     public final void testGetEventTime ()
186     {
187100       final long before = System.currentTimeMillis();
188100       final LoggableImpl testObject1
189              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
190                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
191100       final long after = System.currentTimeMillis();
192  
19375       assertTrue("Timestamp must be after before mark.",
194              before <= testObject1.getEventTime());
19575       assertTrue("Timestamp must be after after mark.",
196              testObject1.getEventTime() <= after);
197100    }
198  
199     /** Tests the get node id method. */
200     public final void testGetNodeId ()
201     {
202100       final LoggableImpl testObject
203              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
204                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
205  
206100       assertEquals("Node id getter changes value.", TEST_NODE,
207              testObject.getNodeId());
208  
209100       final LoggableImpl testNullObject
210              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
211                  TEST_THREAD_NAME, TEST_INSTANCE_ID, null);
212  
213100       assertEquals("Node id getter changes value (null).", null,
214              testNullObject.getNodeId());
215100    }
216  
217     /** Tests the get instance id method. */
218     public final void testGetInstanceId ()
219     {
220100       final LoggableImpl testObject
221              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
222                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
223  
224100       assertEquals("Instance id getter changes value.", TEST_INSTANCE_ID,
225              testObject.getInstanceId());
226100    }
227  
228     /** Tests the get thread id method. */
229     public final void testGetThreadId ()
230     {
231100       final LoggableImpl testObject
232              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
233                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
234  
235100       assertEquals("Thread id getter changes value.", TEST_THREAD_ID,
236              testObject.getThreadId());
237100    }
238  
239     /** Tests the get cause method. */
240     public final void testGetCause ()
241     {
242100        final Exception testException
243 (1)       = new RuntimeException("Runtime", new ArgumentMalformedException("foo", "val", "This is wrong!"));
244100       final LoggableImpl testObject
245              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
246                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE, testException);
247  //      testException.initCause();
248        // testObject.initCause(testException);
249100(2)System.out.println("TEST: " + testObject.toDetailedString());
250100       assertEquals("Cause getter changes value.", testException,
251              testObject.getCause());
252100       assertEquals("Cause getter changes value. (parameter)", testException,
253              testObject.getParameter(LoggableImpl.CAUSE_PARAMETER_NAME)
254                 .get(0));
255  
256100    }
257  
258     /** Tests the log method. */
259     public final void testLog ()
260     {
261100       final LoggableImpl testObject
262              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
263                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
264  
265100       testObject.log(); // should not throw a exception...
266100    }
267  
268     /** Tests the get message method. */
269     public final void testGetMessage ()
270     {
271100       final LoggableImpl testObject
272              = new LoggableImpl(null, TEST_LOG_MESSAGE_INFO, TEST_THREAD_ID,
273                  TEST_THREAD_NAME, TEST_INSTANCE_ID, TEST_NODE);
274  
275100       testObject.addParameter(TEST_DUMMY_PARAMETER_NAME, "value");
276  
277100       final String message = testObject.getMessage();
27875(3)      assertTrue("Message must contain dummy object '" + message + "'.",
279              message.indexOf("DUMMY:value") != -1);
280100    }
281  
282     /** Internal test class. */
283100(4)   private static final class TestLogMessageInfo
284           extends LogMessageInfoImpl
285           implements LogMessageInfo
286     {
287        static final int INT_VALUE = 4711;
288        static final long serialVersionUID = 1;
289        private TestLogMessageInfo ()
290        {
291100          super("FOO_SYMBOL", INT_VALUE, Level.INFO,
292                 "Test Pattern {0} {1,DATE} {1,TIME} DUMMY:{2} ",
293                 "solution", BusinessImpact.MIDDLE, Category.SECURITY,
294                 new String[]
295                    {
296                       LoggableImpl.THREAD_ID_PARAMETER_NAME,
297                       LoggableImpl.EVENT_TIME_PARAMETER_NAME,
298                       TEST_DUMMY_PARAMETER_NAME
299                    },
300                  "Application Foo", "Foo", "Group Bar", "Bar"
301                 );
302100       }
303     }
304  }

Findings in this File

c (1) 243 : 0 Line is longer than 80 characters.
d (2) 249 : 1 System.out.print is used
c (3) 278 : 7 Use assertSame(x, y) instead of assertTrue(x==y), or assertNotSame(x,y) vs assertFalse(x==y)
i (4) 283 : 0 Class org.jcoderz.commons.LoggableImplTest$TestLogMessageInfo implements same interface as superclass (test code)