package org.oddjob.schedules.schedules; import java.text.ParseException; import junit.framework.TestCase; import org.oddjob.OddjobDescriptorFactory; import org.oddjob.arooa.ArooaDescriptor; import org.oddjob.arooa.ArooaParseException; import org.oddjob.arooa.standard.StandardFragmentParser; import org.oddjob.arooa.utils.DateHelper; import org.oddjob.arooa.xml.XMLConfiguration; import org.oddjob.schedules.Interval; import org.oddjob.schedules.IntervalTo; import org.oddjob.schedules.Schedule; import org.oddjob.schedules.ScheduleContext; import org.oddjob.schedules.ScheduleResult; import org.oddjob.schedules.SimpleScheduleResult; public class TimeScheduleExamplesTest extends TestCase { public void testSimpleExample() throws ArooaParseException, ParseException { OddjobDescriptorFactory df = new OddjobDescriptorFactory(); ArooaDescriptor descriptor = df.createDescriptor( getClass().getClassLoader()); StandardFragmentParser parser = new StandardFragmentParser(descriptor); parser.parse(new XMLConfiguration( "org/oddjob/schedules/schedules/TimeScheduleSimpleExample.xml", getClass().getClassLoader())); TimeSchedule schedule = (TimeSchedule) parser.getRoot(); assertEquals("10:00", schedule.getFrom()); assertEquals("10:00", schedule.getTo()); ScheduleResult expected, result; result = schedule.nextDue(new ScheduleContext( DateHelper.parseDateTime("2011-02-15 09:55"))); expected = new SimpleScheduleResult( new IntervalTo( DateHelper.parseDateTime("2011-02-15 10:00")), null); assertEquals(expected, result); result = schedule.nextDue(new ScheduleContext( DateHelper.parseDateTime("2011-02-15 10:05"))); expected = null; assertEquals(expected, result); } public void testTimeAndIntervalExample() throws ArooaParseException, ParseException { OddjobDescriptorFactory df = new OddjobDescriptorFactory(); ArooaDescriptor descriptor = df.createDescriptor( getClass().getClassLoader()); StandardFragmentParser parser = new StandardFragmentParser(descriptor); parser.parse(new XMLConfiguration( "org/oddjob/schedules/schedules/TimeAndIntervalExample.xml", getClass().getClassLoader())); Schedule schedule = (Schedule) parser.getRoot(); Interval next = schedule.nextDue(new ScheduleContext( DateHelper.parseDateTime("2011-02-15 16:05"))); ScheduleResult expected; expected = new IntervalTo( DateHelper.parseDateTime("2011-02-15 22:00"), DateHelper.parseDateTime("2011-02-15 22:15")); assertEquals(expected, next); next = schedule.nextDue(new ScheduleContext( DateHelper.parseDateTime("2011-02-16 03:55"))); expected = new SimpleScheduleResult( new IntervalTo( DateHelper.parseDateTime("2011-02-16 03:45"), DateHelper.parseDateTime("2011-02-16 04:00")), null); assertEquals(expected, next); } }