mirror of
https://github.com/fabioformosa/quartz-manager.git
synced 2026-05-14 22:00:30 +09:00
#103 fixed a test
This commit is contained in:
@@ -4,17 +4,26 @@ import it.fabioformosa.quartzmanager.api.dto.TriggerFiredBundleDTO;
|
|||||||
import it.fabioformosa.quartzmanager.api.jobs.entities.LogRecord;
|
import it.fabioformosa.quartzmanager.api.jobs.entities.LogRecord;
|
||||||
import it.fabioformosa.quartzmanager.api.websockets.WebhookSender;
|
import it.fabioformosa.quartzmanager.api.websockets.WebhookSender;
|
||||||
import org.assertj.core.api.Assertions;
|
import org.assertj.core.api.Assertions;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.ArgumentCaptor;
|
||||||
|
import org.mockito.Captor;
|
||||||
import org.mockito.InjectMocks;
|
import org.mockito.InjectMocks;
|
||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.junit.jupiter.MockitoExtension;
|
||||||
import org.quartz.*;
|
import org.quartz.JobBuilder;
|
||||||
|
import org.quartz.JobDetail;
|
||||||
|
import org.quartz.JobExecutionContext;
|
||||||
|
import org.quartz.JobKey;
|
||||||
|
import org.quartz.ScheduleBuilder;
|
||||||
|
import org.quartz.SimpleScheduleBuilder;
|
||||||
|
import org.quartz.Trigger;
|
||||||
|
import org.quartz.TriggerBuilder;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.argThat;
|
|
||||||
import static org.mockito.ArgumentMatchers.eq;
|
import static org.mockito.ArgumentMatchers.eq;
|
||||||
|
|
||||||
|
@ExtendWith(MockitoExtension.class)
|
||||||
class SampleJobTest {
|
class SampleJobTest {
|
||||||
|
|
||||||
@InjectMocks
|
@InjectMocks
|
||||||
@@ -25,10 +34,11 @@ class SampleJobTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private WebhookSender<LogRecord> webSocketLogsNotifier;
|
private WebhookSender<LogRecord> webSocketLogsNotifier;
|
||||||
|
|
||||||
@BeforeEach
|
@Captor
|
||||||
void setUp() {
|
private ArgumentCaptor<LogRecord> logRecordCaptor;
|
||||||
MockitoAnnotations.openMocks(this);
|
|
||||||
}
|
@Captor
|
||||||
|
private ArgumentCaptor<TriggerFiredBundleDTO> triggerFiredBundleDTOCaptor;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void givenASampleJob_whenTheJobIsExecuted_thenTheWebhookSendersAreCalled() {
|
void givenASampleJob_whenTheJobIsExecuted_thenTheWebhookSendersAreCalled() {
|
||||||
@@ -50,24 +60,23 @@ class SampleJobTest {
|
|||||||
Mockito.when(jobExecutionContext.getJobDetail()).thenReturn(jobDetail);
|
Mockito.when(jobExecutionContext.getJobDetail()).thenReturn(jobDetail);
|
||||||
|
|
||||||
sampleJob.execute(jobExecutionContext);
|
sampleJob.execute(jobExecutionContext);
|
||||||
Mockito.verify(webSocketLogsNotifier).send(eq(triggerName), argThat(actualLogRecord -> {
|
Mockito.verify(webSocketLogsNotifier).send(eq(triggerName), logRecordCaptor.capture());
|
||||||
Assertions.assertThat(actualLogRecord.getMessage()).isEqualTo("Hello!");
|
LogRecord actualLogRecord = logRecordCaptor.getValue();
|
||||||
Assertions.assertThat(actualLogRecord.getType()).isEqualTo(LogRecord.LogType.INFO);
|
Assertions.assertThat(actualLogRecord.getMessage()).isEqualTo("Hello!");
|
||||||
Assertions.assertThat(actualLogRecord.getDate()).isNotNull();
|
Assertions.assertThat(actualLogRecord.getType()).isEqualTo(LogRecord.LogType.INFO);
|
||||||
Assertions.assertThat(actualLogRecord.getThreadName()).isNotNull();
|
Assertions.assertThat(actualLogRecord.getDate()).isNotNull();
|
||||||
return true;
|
Assertions.assertThat(actualLogRecord.getThreadName()).isNotNull();
|
||||||
}));
|
|
||||||
Mockito.verify(webSocketProgressNotifier).send(eq(triggerName), argThat(triggerFiredBundleDTO -> {
|
Mockito.verify(webSocketProgressNotifier).send(eq(triggerName), triggerFiredBundleDTOCaptor.capture());
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getJobKey()).isEqualTo("test-job");
|
TriggerFiredBundleDTO triggerFiredBundleDTO = triggerFiredBundleDTOCaptor.getValue();
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getRepeatCount()).isEqualTo(6);
|
Assertions.assertThat(triggerFiredBundleDTO.getJobKey()).isEqualTo("test-job");
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getJobClass()).isEqualTo(SampleJob.class.getName());
|
Assertions.assertThat(triggerFiredBundleDTO.getRepeatCount()).isEqualTo(6);
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getTimesTriggered()).isZero();
|
Assertions.assertThat(triggerFiredBundleDTO.getJobClass()).isEqualTo(SampleJob.class.getName());
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getNextFireTime()).isNull();
|
Assertions.assertThat(triggerFiredBundleDTO.getTimesTriggered()).isZero();
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getPercentage()).isZero();
|
Assertions.assertThat(triggerFiredBundleDTO.getNextFireTime()).isNull();
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getFinalFireTime()).isNotNull();
|
Assertions.assertThat(triggerFiredBundleDTO.getPercentage()).isZero();
|
||||||
Assertions.assertThat(triggerFiredBundleDTO.getPreviousFireTime()).isNull();
|
Assertions.assertThat(triggerFiredBundleDTO.getFinalFireTime()).isNotNull();
|
||||||
return true;
|
Assertions.assertThat(triggerFiredBundleDTO.getPreviousFireTime()).isNull();
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|||||||
Reference in New Issue
Block a user