1
2
3
4
5
6
7
8
9
10
11 package org.mule.util.timer;
12
13 import org.mule.tck.AbstractMuleTestCase;
14
15 import java.util.Timer;
16
17 public class TimerTestCase extends AbstractMuleTestCase implements TimeEventListener
18 {
19 volatile boolean fired;
20
21 public void testTimer() throws Exception
22 {
23 Timer timer = new Timer();
24
25 EventTimerTask task = new EventTimerTask(this);
26
27 timer.schedule(task, 0, 1000);
28 task.start();
29 Thread.sleep(1500);
30 assertTrue(fired);
31 }
32
33 public void testStopTimer() throws Exception
34 {
35 fired = false;
36 Timer timer = new Timer();
37
38 EventTimerTask task = new EventTimerTask(this);
39
40 timer.schedule(task, 0, 1000);
41 task.start();
42 Thread.sleep(1500);
43 assertTrue(fired);
44 fired = false;
45 task.stop();
46 Thread.sleep(1500);
47 assertTrue(!fired);
48 }
49
50 public void testMultipleListeners() throws Exception
51 {
52 fired = false;
53 Timer timer = new Timer();
54 AnotherListener listener = new AnotherListener();
55
56 EventTimerTask task = new EventTimerTask(this);
57 task.addListener(listener);
58
59 timer.schedule(task, 0, 1000);
60
61 task.start();
62 Thread.sleep(1500);
63 assertTrue(fired);
64 assertTrue(listener.wasFired());
65 listener.setWasFired(false);
66
67 fired = false;
68 task.stop();
69 Thread.sleep(1500);
70 assertTrue(!fired);
71 assertTrue(!listener.wasFired());
72 }
73
74 public void testRemoveListeners() throws Exception
75 {
76 fired = false;
77 Timer timer = new Timer();
78 AnotherListener listener = new AnotherListener();
79
80 EventTimerTask task = new EventTimerTask(this);
81 task.addListener(listener);
82
83 timer.schedule(task, 0, 1000);
84
85 task.start();
86 Thread.sleep(1500);
87 assertTrue(fired);
88 assertTrue(listener.wasFired());
89 listener.setWasFired(false);
90
91 fired = false;
92 task.stop();
93 task.removeListener(this);
94 task.start();
95 Thread.sleep(1500);
96 assertTrue(!fired);
97 assertTrue(listener.wasFired());
98 listener.setWasFired(false);
99 task.stop();
100 task.removeAllListeners();
101 task.start();
102 Thread.sleep(1500);
103 assertTrue(!fired);
104 assertTrue(!listener.wasFired());
105 }
106
107 public void timeExpired(TimeEvent e)
108 {
109 assertTrue(e.getTimeExpired() > 0);
110 assertNotNull(e.getName());
111 fired = true;
112
113 }
114
115 private class AnotherListener implements TimeEventListener
116 {
117
118 private boolean wasFired;
119
120 public void timeExpired(TimeEvent e)
121 {
122 wasFired = true;
123 }
124
125
126
127
128 public boolean wasFired()
129 {
130 return wasFired;
131 }
132
133
134
135
136 public void setWasFired(boolean wasFired)
137 {
138 this.wasFired = wasFired;
139 }
140
141 }
142
143 }