@Test
public void quartzAvailabilityTest() {
Date startTime = new Date();
Date endTime = new Date( startTime.getTime() + 1000 );
org.quartz.Calendar calendar = new QuartzSchedulerAvailability( startTime, endTime );
Assert.assertTrue( calendar.isTimeIncluded( startTime.getTime() ) );
Assert.assertTrue( calendar.isTimeIncluded( endTime.getTime() ) );
Assert.assertFalse( calendar.isTimeIncluded( startTime.getTime() - 1 ) );
Assert.assertFalse( calendar.isTimeIncluded( endTime.getTime() + 1 ) );
Assert.assertEquals( calendar.getNextIncludedTime( startTime.getTime() - 1 ), startTime.getTime() );
Assert.assertEquals( calendar.getNextIncludedTime( startTime.getTime() ), startTime.getTime() + 1 );
Assert.assertEquals( calendar.getNextIncludedTime( endTime.getTime() - 1 ), endTime.getTime() );
Assert.assertEquals( calendar.getNextIncludedTime( endTime.getTime() ), 0 );
Assert.assertEquals( calendar.getNextIncludedTime( endTime.getTime() + 1 ), 0 );
calendar = new QuartzSchedulerAvailability( null, endTime );
Assert.assertTrue( calendar.isTimeIncluded( startTime.getTime() ) );
Assert.assertTrue( calendar.isTimeIncluded( endTime.getTime() ) );
Assert.assertFalse( calendar.isTimeIncluded( endTime.getTime() + 1 ) );
Assert.assertEquals( calendar.getNextIncludedTime( startTime.getTime() ), startTime.getTime() + 1 );
Assert.assertEquals( calendar.getNextIncludedTime( endTime.getTime() ), 0 );
Assert.assertEquals( calendar.getNextIncludedTime( endTime.getTime() + 1 ), 0 );
calendar = new QuartzSchedulerAvailability( startTime, null );
Assert.assertTrue( calendar.isTimeIncluded( startTime.getTime() ) );
Assert.assertFalse( calendar.isTimeIncluded( startTime.getTime() - 1 ) );
Assert.assertTrue( calendar.isTimeIncluded( endTime.getTime() ) );
Assert.assertEquals( calendar.getNextIncludedTime( startTime.getTime() - 1 ), startTime.getTime() );
Assert.assertEquals( calendar.getNextIncludedTime( startTime.getTime() ), startTime.getTime() + 1 );
}