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