KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > schedules > schedules > CountScheduleTest


1 /*
2  * (c) Rob Gordon 2005
3  */

4 package org.oddjob.schedules.schedules;
5
6 import java.util.Date JavaDoc;
7 import java.util.HashMap JavaDoc;
8 import java.util.Map JavaDoc;
9
10 import junit.framework.TestCase;
11
12 import org.oddjob.Helper;
13 import org.oddjob.schedules.Interval;
14 import org.oddjob.schedules.Schedule;
15 import org.oddjob.schedules.ScheduleContext;
16
17 /**
18  *
19  */

20 public class CountScheduleTest extends TestCase {
21     
22     public void testCount() {
23         class Counter implements Schedule {
24             int count;
25             public Interval nextDue(ScheduleContext context) {
26                 count++;
27                 return new Interval(new Date JavaDoc(0), new Date JavaDoc(0));
28             }
29             public void setLimits(Interval limits) {
30             }
31         }
32         CountSchedule s = new CountSchedule();
33         s.setCount("3");
34         Counter c = new Counter();
35         s.addValueSchedule(c);
36         Interval nextDue = null;
37         ScheduleContext context = new ScheduleContext(new Date JavaDoc());
38         do {
39             context = context.spawn(
40                     new Date JavaDoc(context.getDate().getTime() + 1));
41             nextDue = s.nextDue(context);
42         } while (nextDue != null);
43         
44         assertEquals(3, c.count);
45     }
46     
47     public void testSerialize() throws Exception JavaDoc {
48         CountSchedule test = new CountSchedule();
49         test.setCount("1");
50         
51         Map JavaDoc map = new HashMap JavaDoc();
52         ScheduleContext context = new ScheduleContext(
53                 new Date JavaDoc(), null, map);
54         
55         Interval interval = test.nextDue(context);
56         
57         Schedule copy = (Schedule) Helper.copy(test);
58         
59         context = new ScheduleContext(
60                 new Date JavaDoc(), null, map);
61         
62         interval = copy.nextDue(context);
63         assertNull(interval);
64         
65     }
66 }
67
Popular Tags