Package org.pentaho.platform.scheduler2.quartz.test

Source Code of org.pentaho.platform.scheduler2.quartz.test.ComplexTriggerTest

/*!
* This program is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software
* Foundation.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
* or from the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* Copyright (c) 2002-2013 Pentaho Corporation..  All rights reserved.
*/

package org.pentaho.platform.scheduler2.quartz.test;

import org.junit.Assert;
import org.junit.Test;
import org.pentaho.platform.api.scheduler2.ComplexJobTrigger;
import org.pentaho.platform.scheduler2.quartz.QuartzScheduler;
import org.pentaho.platform.scheduler2.recur.IncrementalRecurrence;
import org.pentaho.platform.scheduler2.recur.QualifiedDayOfWeek;
import org.pentaho.platform.scheduler2.recur.QualifiedDayOfWeek.DayOfWeek;
import org.pentaho.platform.scheduler2.recur.QualifiedDayOfWeek.DayOfWeekQualifier;
import org.pentaho.platform.scheduler2.recur.RecurrenceList;
import org.pentaho.platform.scheduler2.recur.SequentialRecurrence;

@SuppressWarnings( "nls" )
public class ComplexTriggerTest {

  @Test
  public void timeSliceTest() {
    ComplexJobTrigger trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY );
    trigger.addHourlyRecurrence( 12 );
    trigger.addMinuteRecurrence( 15 );
    trigger.addSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1 0,15 0,12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY );
    trigger.setHourlyRecurrence( 12 );
    trigger.setMinuteRecurrence( 15 );
    trigger.setSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1 15 12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.addDayOfMonthRecurrence( 10 );
    trigger.addHourlyRecurrence( 12 );
    trigger.addMinuteRecurrence( 15 );
    trigger.addSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1 0,15 0,12 10 3 ? 2010" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH );
    trigger.setDayOfMonthRecurrence( 10 );
    trigger.setHourlyRecurrence( 12 );
    trigger.setMinuteRecurrence( 15 );
    trigger.setSecondRecurrence( 1 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1 15 12 10 3 ? 2010" );

    trigger = new ComplexJobTrigger( 2010, ComplexJobTrigger.MARCH, null, ComplexJobTrigger.SATURDAY, 12 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 12 ? 3 7 2010" );

    trigger = new ComplexJobTrigger( 2010, ComplexJobTrigger.MARCH, 10, null, 12 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 12 10 3 ? 2010" );

    trigger = QuartzScheduler.createComplexTrigger( "5 15 12 ? 3 7 2010" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfWeekRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfWeekRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 7 ) );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getSecondRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getSecondRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getSecondRecurrences().get( 0 ) ).getValues().size(), 1 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getSecondRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 5 ) );

    trigger = QuartzScheduler.createComplexTrigger( "* * * * * ? *" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getSecondRecurrences().size(), 0 );

    trigger = QuartzScheduler.createComplexTrigger( "* * * ? * * *" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 0 );
    Assert.assertEquals( trigger.getSecondRecurrences().size(), 0 );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    trigger.addSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1,2 0,30,45 0,12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 3, 10 );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    trigger.setSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1,2 30,45 12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    trigger.addSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0,1,2 0,30,45 0,12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 3, 10 );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    trigger.setSecondRecurrence( 1, 2 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "1,2 30,45 12,15 3,10 3,5 ? 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30,45 0,12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30,45 12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30,45 0,12,15 ? 3,5 1,7 2010,2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SATURDAY, ComplexJobTrigger.SUNDAY );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30,45 12,15 ? 3,5 1,7 2010,2013" );

    trigger = QuartzScheduler.createComplexTrigger( "0 30,45 12,15 3,10 3,5 ? 2010,2013" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 2013 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 3 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 10 ) );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 30 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 45 ) );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2010, 2013 ) );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY ) );
    trigger.addDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 12, 15 ) );
    trigger.addMinuteRecurrence( new SequentialRecurrence( 30, 45 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-45 0,12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( new SequentialRecurrence( 2010, 2013 ) );
    trigger.setMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY ) );
    trigger.setDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.setHourlyRecurrence( new SequentialRecurrence( 12, 15 ) );
    trigger.setMinuteRecurrence( new SequentialRecurrence( 30, 45 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-45 12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.addDayOfMonthRecurrence( 15, 16, 17, 18, 19, 20 );
    trigger.addHourlyRecurrence( 12, 13, 14, 15 );
    trigger.addMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-36 0,12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.setDayOfMonthRecurrence( 15, 16, 17, 18, 19, 20 );
    trigger.setHourlyRecurrence( 12, 13, 14, 15 );
    trigger.setMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-36 12-15 15-20 3-5 ? 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.addDayOfWeekRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY, ComplexJobTrigger.TUESDAY,
        ComplexJobTrigger.WEDNESDAY, ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY, ComplexJobTrigger.SATURDAY );
    trigger.addHourlyRecurrence( 12, 13, 14, 15 );
    trigger.addMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0,30-36 0,12-15 ? 3-5 1-7 2010-2013" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2011, 2012, 2013 );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.APRIL, ComplexJobTrigger.MAY );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY, ComplexJobTrigger.TUESDAY,
        ComplexJobTrigger.WEDNESDAY, ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY, ComplexJobTrigger.SATURDAY );
    trigger.setHourlyRecurrence( 12, 13, 14, 15 );
    trigger.setMinuteRecurrence( 30, 31, 32, 33, 34, 35, 36 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 30-36 12-15 ? 3-5 1-7 2010-2013" );

    trigger = QuartzScheduler.createComplexTrigger( "0 30-45 12-15 ? 3-5 1-7 2010-2013" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 2013 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfWeekRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.SUNDAY ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfWeekRecurrences().get( 0 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.SATURDAY ) );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 12 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 15 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMinuteRecurrences().get( 0 ) ).getFirstValue(),
        new Integer( 30 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMinuteRecurrences().get( 0 ) ).getLastValue(),
        new Integer( 45 ) );

    trigger = new ComplexJobTrigger();
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.LAST, DayOfWeek.FRI ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 0 ? * 6L *" );

    trigger = new ComplexJobTrigger();
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.LAST, DayOfWeek.FRI ) );
    trigger.addDayOfWeekRecurrence( new QualifiedDayOfWeek( DayOfWeekQualifier.THIRD, DayOfWeek.SUN ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "0 0 0 ? * 6L,1#3 *" );

    trigger = QuartzScheduler.createComplexTrigger( "* 0 0 ? * 6L,1#3 *" );
    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 2 );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 0 ) instanceof QualifiedDayOfWeek );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 0 ) ).getQualifier(),
        DayOfWeekQualifier.LAST );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 0 ) ).getDayOfWeek(),
        DayOfWeek.FRI );
    Assert.assertTrue( trigger.getDayOfWeekRecurrences().get( 1 ) instanceof QualifiedDayOfWeek );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 1 ) ).getQualifier(),
        DayOfWeekQualifier.THIRD );
    Assert.assertEquals( ( (QualifiedDayOfWeek) trigger.getDayOfWeekRecurrences().get( 1 ) ).getDayOfWeek(),
        DayOfWeek.SUN );

    trigger = new ComplexJobTrigger();
    trigger.addYearlyRecurrence( 2010, 2013 );
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.addYearlyRecurrence( new IncrementalRecurrence( 2025, 5 ) );
    trigger.addMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.addMonthlyRecurrence( new IncrementalRecurrence( ComplexJobTrigger.JANUARY, 3 ) );
    trigger.addDayOfMonthRecurrence( 3, 10 );
    trigger.addDayOfMonthRecurrence( new SequentialRecurrence( 15, 20 ) );
    trigger.addDayOfMonthRecurrence( new IncrementalRecurrence( 21, 3 ) );
    trigger.addHourlyRecurrence( 12, 15 );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.addHourlyRecurrence( new IncrementalRecurrence( 10, 5 ) );
    trigger.addMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(),
        "0 0,30,45 0,12,15,25-30,10/5 3,10,15-20,21/3 3,5,7-9,1/3 ? 2010,2013,2015-2020,2025/5" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( 2010, 2013 );
    trigger.addYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.addYearlyRecurrence( new IncrementalRecurrence( 2025, 5 ) );
    trigger.setMonthlyRecurrence( ComplexJobTrigger.MARCH, ComplexJobTrigger.MAY );
    trigger.addMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.addMonthlyRecurrence( new IncrementalRecurrence( ComplexJobTrigger.JANUARY, 3 ) );
    trigger.setDayOfWeekRecurrence( ComplexJobTrigger.THURSDAY, ComplexJobTrigger.FRIDAY );
    trigger.addDayOfWeekRecurrence( new SequentialRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY ) );
    trigger.setHourlyRecurrence( 12, 15 );
    trigger.addHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.addHourlyRecurrence( new IncrementalRecurrence( 10, 5 ) );
    trigger.setMinuteRecurrence( 30, 45 );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(),
        "0 30,45 12,15,25-30,10/5 ? 3,5,7-9,1/3 5,6,1-2 2010,2013,2015-2020,2025/5" );

    trigger = new ComplexJobTrigger();
    trigger.setYearlyRecurrence( new SequentialRecurrence( 2015, 2020 ) );
    trigger.setMonthlyRecurrence( new SequentialRecurrence( ComplexJobTrigger.JULY, ComplexJobTrigger.SEPTEMBER ) );
    trigger.setDayOfWeekRecurrence( new SequentialRecurrence( ComplexJobTrigger.SUNDAY, ComplexJobTrigger.MONDAY ) );
    trigger.setHourlyRecurrence( new SequentialRecurrence( 25, 30 ) );
    trigger.setMinuteRecurrence( new SequentialRecurrence( 5, 10 ) );
    trigger.setSecondRecurrence( new SequentialRecurrence( 30, 35 ) );
    System.out.println( trigger.toString() );
    Assert.assertEquals( trigger.toString(), "30-35 5-10 25-30 ? 7-9 1-2 2015-2020" );

    trigger =
        QuartzScheduler
            .createComplexTrigger( "0 30,45 12,15,25-30,10/5 3,10,15-20,21/3 3,5,7-9,"
                    + "1/3 ? 2010,2013,2015-2020,2025/5" );
    Assert.assertEquals( trigger.getYearlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getYearlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 2010 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getYearlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 2013 ) );

    Assert.assertTrue( trigger.getYearlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 2015 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getYearlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 2020 ) );

    Assert.assertTrue( trigger.getYearlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getYearlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 2025 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getYearlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 5 ) );

    Assert.assertEquals( trigger.getMonthlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( ComplexJobTrigger.MARCH ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMonthlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( ComplexJobTrigger.MAY ) );

    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( ComplexJobTrigger.JULY ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getMonthlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( ComplexJobTrigger.SEPTEMBER ) );

    Assert.assertTrue( trigger.getMonthlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getMonthlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( ComplexJobTrigger.JANUARY ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getMonthlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 3 ) );

    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 3 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getDayOfMonthRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 10 ) );

    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfMonthRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 15 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getDayOfMonthRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 20 ) );

    Assert.assertTrue( trigger.getDayOfMonthRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getDayOfMonthRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 21 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getDayOfMonthRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 3 ) );
    Assert.assertEquals( trigger.getDayOfMonthRecurrences().size(), 3 );

    Assert.assertEquals( trigger.getDayOfWeekRecurrences().size(), 0 );

    Assert.assertEquals( trigger.getHourlyRecurrences().size(), 3 );
    Assert.assertTrue( trigger.getHourlyRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 12 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getHourlyRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 15 ) );

    Assert.assertTrue( trigger.getHourlyRecurrences().get( 1 ) instanceof SequentialRecurrence );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 1 ) ).getFirstValue(),
        new Integer( 25 ) );
    Assert.assertEquals( ( (SequentialRecurrence) trigger.getHourlyRecurrences().get( 1 ) ).getLastValue(),
        new Integer( 30 ) );

    Assert.assertTrue( trigger.getHourlyRecurrences().get( 2 ) instanceof IncrementalRecurrence );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getHourlyRecurrences().get( 2 ) ).getStartingValue(),
        new Integer( 10 ) );
    Assert.assertEquals( ( (IncrementalRecurrence) trigger.getHourlyRecurrences().get( 2 ) ).getIncrement(),
        new Integer( 5 ) );

    Assert.assertEquals( trigger.getMinuteRecurrences().size(), 1 );
    Assert.assertTrue( trigger.getMinuteRecurrences().get( 0 ) instanceof RecurrenceList );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().size(), 2 );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 0 ),
        new Integer( 30 ) );
    Assert.assertEquals( ( (RecurrenceList) trigger.getMinuteRecurrences().get( 0 ) ).getValues().get( 1 ),
        new Integer( 45 ) );

  }
}
TOP

Related Classes of org.pentaho.platform.scheduler2.quartz.test.ComplexTriggerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.