CompositeExecutionTimeTest.java
package com.cronutils.model.time;
import static com.cronutils.model.CronType.QUARTZ;
import static java.time.ZoneOffset.UTC;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import com.cronutils.model.definition.CronDefinitionBuilder;
import com.cronutils.parser.CronParser;
/**
* Test for CompositeExecutionTime.java
*/
class CompositeExecutionTimeTest {
CompositeExecutionTime compositeExecutionTime;
CronParser parser;
@BeforeEach
public void setUp() {
CronParser parser = new CronParser(CronDefinitionBuilder.instanceDefinitionFor(QUARTZ));
List<ExecutionTime> executionTimes = new ArrayList<ExecutionTime>();
ExecutionTime executionTime = ExecutionTime.forCron(parser.parse("4 * * * * ? *"));
executionTimes.add(executionTime);
executionTime = ExecutionTime.forCron(parser.parse("6 0 0 * * ? *"));
executionTimes.add(executionTime);
compositeExecutionTime = new CompositeExecutionTime(executionTimes);
}
/**
* Test lastExecution() method
*/
@Test
void testLastExecution() {
ZonedDateTime dateTime = ZonedDateTime.of(2022, 10, 15, 3, 2, 4, 2, UTC);
Optional<ZonedDateTime> lastExecutionOptional = compositeExecutionTime.lastExecution(dateTime);
if(lastExecutionOptional.isPresent()) {
ZonedDateTime lastExecution = lastExecutionOptional.get();
assertEquals(dateTime.getYear(), lastExecution.getYear());
assertEquals(dateTime.getMonth(), lastExecution.getMonth());
assertEquals(dateTime.getDayOfMonth(), lastExecution.getDayOfMonth());
assertEquals(dateTime.getDayOfWeek(), lastExecution.getDayOfWeek());
assertEquals(dateTime.getHour(), lastExecution.getHour());
assertEquals(dateTime.getMinute(), lastExecution.getMinute());
assertEquals(dateTime.getSecond(), lastExecution.getSecond());
assertEquals(dateTime.getZone(), lastExecution.getZone());
}
}
}