mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-08-11 13:48:37 +02:00
Create ScheduledTasksTest.java
This commit is contained in:
parent
214e125035
commit
5fd03a68a8
@ -0,0 +1,68 @@
|
|||||||
|
package stirling.software.proprietary.security.database;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
|
import org.springframework.context.annotation.Conditional;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
|
|
||||||
|
import stirling.software.common.model.exception.UnsupportedProviderException;
|
||||||
|
import stirling.software.proprietary.security.service.DatabaseServiceInterface;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
|
class ScheduledTasksTest {
|
||||||
|
|
||||||
|
@Mock private DatabaseServiceInterface databaseService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void performBackup_calls_exportDatabase() throws Exception {
|
||||||
|
ScheduledTasks tasks = new ScheduledTasks(databaseService);
|
||||||
|
|
||||||
|
tasks.performBackup();
|
||||||
|
|
||||||
|
verify(databaseService, times(1)).exportDatabase();
|
||||||
|
verifyNoMoreInteractions(databaseService);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void performBackup_propagates_SQLException() throws Exception {
|
||||||
|
ScheduledTasks tasks = new ScheduledTasks(databaseService);
|
||||||
|
doThrow(new SQLException("boom")).when(databaseService).exportDatabase();
|
||||||
|
|
||||||
|
assertThrows(SQLException.class, tasks::performBackup);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void performBackup_propagates_UnsupportedProviderException() throws Exception {
|
||||||
|
ScheduledTasks tasks = new ScheduledTasks(databaseService);
|
||||||
|
doThrow(new UnsupportedProviderException("nope")).when(databaseService).exportDatabase();
|
||||||
|
|
||||||
|
assertThrows(UnsupportedProviderException.class, tasks::performBackup);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void hasScheduledAnnotation_withExpectedCron() throws Exception {
|
||||||
|
Method m = ScheduledTasks.class.getDeclaredMethod("performBackup");
|
||||||
|
Scheduled scheduled = m.getAnnotation(Scheduled.class);
|
||||||
|
assertNotNull(scheduled, "@Scheduled annotation missing on performBackup()");
|
||||||
|
assertEquals("0 0 0 * * ?", scheduled.cron(), "Unexpected cron expression");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void classHasConditional_onH2SQLCondition() {
|
||||||
|
Conditional conditional = ScheduledTasks.class.getAnnotation(Conditional.class);
|
||||||
|
assertNotNull(conditional, "@Conditional missing on ScheduledTasks class");
|
||||||
|
|
||||||
|
boolean containsH2 =
|
||||||
|
Arrays.stream(conditional.value()).anyMatch(c -> c == H2SQLCondition.class);
|
||||||
|
assertTrue(containsH2, "@Conditional should include H2SQLCondition");
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user