CronBuilderQuartzIntegrationTest.java
package com.cronutils.builder;
import org.junit.jupiter.api.Test;
import com.cronutils.model.Cron;
import com.cronutils.model.CronType;
import com.cronutils.model.definition.CronDefinition;
import com.cronutils.model.definition.CronDefinitionBuilder;
import static com.cronutils.model.field.expression.FieldExpressionFactory.*;
import static org.junit.jupiter.api.Assertions.*;
public class CronBuilderQuartzIntegrationTest {
@Test
void shouldAllowBothDoWAndDoMWhenAlways() {
CronDefinition quartzDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
CronBuilder cronBuilder = CronBuilder.cron(quartzDefinition)
.withSecond(on(0))
.withMinute(on(1))
.withHour(on(13))
.withDoM(always())
.withMonth(always())
.withDoW(questionMark())
.withYear(always());
Cron cron = cronBuilder.instance();
assertDoesNotThrow(() -> {
// This should not throw a validation error
cron.validate();
});
assertEquals("0 1 13 * * ? *", cron.asString());
}
@Test
void shouldAllowDoMWithQuestionMarkDoW() {
CronDefinition quartzDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
CronBuilder cronBuilder = CronBuilder.cron(quartzDefinition)
.withSecond(on(0))
.withMinute(on(1))
.withHour(on(13))
.withDoM(on(1))
.withMonth(always())
.withDoW(questionMark())
.withYear(always());
Cron cron = cronBuilder.instance();
assertDoesNotThrow(() -> {
// This should not throw a validation error
cron.validate();
});
assertEquals("0 1 13 1 * ? *", cron.asString());
}
@Test
void shouldAllowDoWWithQuestionMarkDoM() {
CronDefinition quartzDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ);
CronBuilder cronBuilder = CronBuilder.cron(quartzDefinition)
.withSecond(on(0))
.withMinute(on(1))
.withHour(on(13))
.withDoM(questionMark())
.withMonth(always())
.withDoW(on(1))
.withYear(always());
Cron cron = cronBuilder.instance();
assertDoesNotThrow(() -> {
// This should not throw a validation error
cron.validate();
});
assertEquals("0 1 13 ? * 1 *", cron.asString());
}
}