01: /*
02: * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
03: */
04: package com.tc.async.impl;
05:
06: import com.tc.async.api.StageMonitor.Analysis;
07: import com.tc.text.StringFormatter;
08: import com.tc.util.concurrent.ThreadUtil;
09:
10: import junit.framework.TestCase;
11:
12: public class StageMonitorImplTest extends TestCase {
13: public void tests() throws Exception {
14: StageMonitorImpl sm = new StageMonitorImpl("name",
15: new StringFormatter());
16:
17: sm.eventBegin(10);
18: ThreadUtil.reallySleep(100);
19: sm.eventBegin(1);
20: sm.eventBegin(0);
21: ThreadUtil.reallySleep(100);
22: sm.eventBegin(10);
23:
24: System.out.println(sm.dumpAndFlush());
25:
26: sm.eventBegin(10);
27: ThreadUtil.reallySleep(1000);
28: sm.eventBegin(10);
29:
30: System.out.println(sm.dumpAndFlush());
31:
32: for (int i = 0; i < 10000; i++) {
33: sm.eventBegin(i);
34: }
35:
36: System.out.println(sm.dumpAndFlush());
37: }
38:
39: public void testAnalyze() throws Exception {
40: StageMonitorImpl sm = new StageMonitorImpl("name",
41: new StringFormatter());
42:
43: Analysis an = sm.analyze();
44: assertEquals(new Integer(0), an.getEventCount());
45: //assertEquals(new Double(0), an.getEventsPerSecond());
46: assertEquals(new Integer(-1), an.getMinQueueDepth());
47: assertEquals(new Integer(0), an.getMaxQueueDepth());
48: assertEquals(new Double(-1), an.getAvgQueueDepth());
49:
50: sm.eventBegin(10);
51: ThreadUtil.reallySleep(100);
52: sm.eventBegin(20);
53: an = sm.analyze();
54:
55: assertEquals(new Integer(2), an.getEventCount());
56: String elapsed = String
57: .valueOf(an.getElapsedTime().longValue());
58: assertTrue(elapsed, an.getElapsedTime().longValue() >= 100);
59: assertTrue(elapsed, an.getElapsedTime().longValue() < 2500);
60: assertEquals(new Double(1000 * an.getEventCount().doubleValue()
61: / an.getElapsedTime().doubleValue()), an
62: .getEventsPerSecond());
63: assertEquals(new Integer(10), an.getMinQueueDepth());
64: assertEquals(new Integer(20), an.getMaxQueueDepth());
65:
66: }
67:
68: }
|