View Javadoc

1   /*
2    * $Id: TimerTestCase.java 20321 2010-11-24 15:21:24Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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          * @return Returns the wasFired.
127          */
128         public boolean wasFired()
129         {
130             return wasFired;
131         }
132 
133         /**
134          * @param wasFired The wasFired to set.
135          */
136         public void setWasFired(boolean wasFired)
137         {
138             this.wasFired = wasFired;
139         }
140 
141     }
142 
143 }