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