1 4 package org.oddjob.schedules.schedules; 5 6 import java.util.Date ; 7 import java.util.HashMap ; 8 import java.util.Map ; 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 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 (0), new Date (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 ()); 38 do { 39 context = context.spawn( 40 new Date (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 { 48 CountSchedule test = new CountSchedule(); 49 test.setCount("1"); 50 51 Map map = new HashMap (); 52 ScheduleContext context = new ScheduleContext( 53 new Date (), 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 (), null, map); 61 62 interval = copy.nextDue(context); 63 assertNull(interval); 64 65 } 66 } 67 | Popular Tags |