From 28e6d9a69252aafeb22834aeec6b5a35c7c87fe7 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 17 Aug 2011 21:01:34 +0000 Subject: [PATCH] added test for month sequence (SPR-7807) --- .../scheduling/support/CronTriggerTests.java | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/org.springframework.context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java b/org.springframework.context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java index a0dab1ca0b..49574ae29d 100644 --- a/org.springframework.context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java +++ b/org.springframework.context/src/test/java/org/springframework/scheduling/support/CronTriggerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 the original author or authors. + * Copyright 2002-2011 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,6 @@ package org.springframework.scheduling.support; -import static org.junit.Assert.assertEquals; - import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -30,8 +28,11 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; + import org.springframework.scheduling.TriggerContext; +import static org.junit.Assert.*; + /** * @author Dave Syer * @author Mark Fisher @@ -670,6 +671,28 @@ public class CronTriggerTests { assertEquals(trigger1, trigger2); } + @Test + public void testMonthSequence() throws Exception { + CronTrigger trigger = new CronTrigger("0 30 23 30 1/3 ?", timeZone); + calendar.set(2010, 11, 30); + Date date = calendar.getTime(); + // set expected next trigger time + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 30); + calendar.set(Calendar.SECOND, 0); + calendar.add(Calendar.MONTH, 1); + TriggerContext context1 = getTriggerContext(date); + assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context1)); + // Next trigger is 3 months latter + calendar.add(Calendar.MONTH, 3); + TriggerContext context2 = getTriggerContext(date); + assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context2)); + // Next trigger is 3 months latter + calendar.add(Calendar.MONTH, 3); + TriggerContext context3 = getTriggerContext(date); + assertEquals(calendar.getTime(), date = trigger.nextExecutionTime(context3)); + } + private void assertMatchesNextSecond(CronTrigger trigger, Calendar calendar) { Date date = calendar.getTime();