Skip to content

Commit

Permalink
Merge branch 'kostapc-fix/intervals-exception'
Browse files Browse the repository at this point in the history
  • Loading branch information
jmrozanec committed May 25, 2016
2 parents 45eafb8 + 0f9e184 commit 917a03d
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import com.cronutils.model.field.expression.FieldExpression;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Lists;
import org.joda.time.DateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -26,6 +27,10 @@ class EveryFieldValueGenerator extends FieldValueGenerator {

public EveryFieldValueGenerator(CronField cronField) {
super(cronField);
log.trace(String.format(
"processing \"%s\" at %s",
cronField.getExpression().asString(), DateTime.now()
));
}

@Override
Expand Down Expand Up @@ -71,7 +76,7 @@ protected List<Integer> generateCandidatesNotIncludingIntervalExtremes(int start
reference=generateNextValue(reference);
}
} catch (NoSuchValueException e) {
log.warn("Failed to generate candidates", e);
log.debug("Failed to generate candidates", e);
}
return values;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@
import com.cronutils.model.CronType;
import com.cronutils.model.definition.CronDefinition;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.model.time.ExecutionTime;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

Expand All @@ -23,6 +28,9 @@
* limitations under the License.
*/
public class CronParserQuartzIntegrationTest {

private final static DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-DD HH:mm:ss");

private CronParser parser;

@Before
Expand Down Expand Up @@ -174,4 +182,28 @@ public void testDescribeExpression(){
public void testDoMAndDoWParametersInvalidForQuartz(){
parser.parse("0 30 17 4 1 * 2016");
}

/**
* Issue #78: ExecutionTime.forCron fails on intervals
*/
@Test
public void testIntervalSeconds() {
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("0/20 * * * * ?"));
DateTime now = DateTime.parse("2005-08-09 18:32:42", formatter);
DateTime lastExecution = executionTime.lastExecution(now);
DateTime assertDate = DateTime.parse("2005-01-09 18:32:40", formatter);
Assert.assertEquals(assertDate, lastExecution);
}

/**
* Issue #78: ExecutionTime.forCron fails on intervals
*/
@Test
public void testIntervalMinutes() {
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("0 0/7 * * * ?"));
DateTime now = DateTime.parse("2005-08-09 18:32:42", formatter);
DateTime lastExecution = executionTime.lastExecution(now);
DateTime assertDate = DateTime.parse("2005-01-09 18:28:00", formatter);
Assert.assertEquals(assertDate, lastExecution);
}
}
2 changes: 1 addition & 1 deletion src/test/resources/log4j.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Logger levels
log4j.rootLogger=WARN, console
log4j.logger.com.cronutils=DEBUG,file
log4j.logger.com.cronutils=DEBUG, console, file
log4j.additivity.com.cronutils=false

# Console appender
Expand Down

0 comments on commit 917a03d

Please sign in to comment.