From 068b0eed34bdb1962c7e963a0c11984dfc9a5a13 Mon Sep 17 00:00:00 2001 From: Fabio Formosa Date: Wed, 6 May 2026 23:43:35 +0200 Subject: [PATCH] #103 fixed a test --- .../quartzmanager/api/jobs/SampleJobTest.java | 61 +++++++++++-------- 1 file changed, 35 insertions(+), 26 deletions(-) diff --git a/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/jobs/SampleJobTest.java b/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/jobs/SampleJobTest.java index e7c2305..2ffde76 100644 --- a/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/jobs/SampleJobTest.java +++ b/quartz-manager-parent/quartz-manager-starter-api/src/test/java/it/fabioformosa/quartzmanager/api/jobs/SampleJobTest.java @@ -4,17 +4,26 @@ import it.fabioformosa.quartzmanager.api.dto.TriggerFiredBundleDTO; import it.fabioformosa.quartzmanager.api.jobs.entities.LogRecord; import it.fabioformosa.quartzmanager.api.websockets.WebhookSender; import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.BeforeEach; 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.Mock; import org.mockito.Mockito; -import org.mockito.MockitoAnnotations; -import org.quartz.*; +import org.mockito.junit.jupiter.MockitoExtension; +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; +@ExtendWith(MockitoExtension.class) class SampleJobTest { @InjectMocks @@ -25,10 +34,11 @@ class SampleJobTest { @Mock private WebhookSender webSocketLogsNotifier; - @BeforeEach - void setUp() { - MockitoAnnotations.openMocks(this); - } + @Captor + private ArgumentCaptor logRecordCaptor; + + @Captor + private ArgumentCaptor triggerFiredBundleDTOCaptor; @Test void givenASampleJob_whenTheJobIsExecuted_thenTheWebhookSendersAreCalled() { @@ -50,24 +60,23 @@ class SampleJobTest { Mockito.when(jobExecutionContext.getJobDetail()).thenReturn(jobDetail); sampleJob.execute(jobExecutionContext); - Mockito.verify(webSocketLogsNotifier).send(eq(triggerName), argThat(actualLogRecord -> { - Assertions.assertThat(actualLogRecord.getMessage()).isEqualTo("Hello!"); - Assertions.assertThat(actualLogRecord.getType()).isEqualTo(LogRecord.LogType.INFO); - Assertions.assertThat(actualLogRecord.getDate()).isNotNull(); - Assertions.assertThat(actualLogRecord.getThreadName()).isNotNull(); - return true; - })); - Mockito.verify(webSocketProgressNotifier).send(eq(triggerName), argThat(triggerFiredBundleDTO -> { - Assertions.assertThat(triggerFiredBundleDTO.getJobKey()).isEqualTo("test-job"); - Assertions.assertThat(triggerFiredBundleDTO.getRepeatCount()).isEqualTo(6); - Assertions.assertThat(triggerFiredBundleDTO.getJobClass()).isEqualTo(SampleJob.class.getName()); - Assertions.assertThat(triggerFiredBundleDTO.getTimesTriggered()).isZero(); - Assertions.assertThat(triggerFiredBundleDTO.getNextFireTime()).isNull(); - Assertions.assertThat(triggerFiredBundleDTO.getPercentage()).isZero(); - Assertions.assertThat(triggerFiredBundleDTO.getFinalFireTime()).isNotNull(); - Assertions.assertThat(triggerFiredBundleDTO.getPreviousFireTime()).isNull(); - return true; - })); + Mockito.verify(webSocketLogsNotifier).send(eq(triggerName), logRecordCaptor.capture()); + LogRecord actualLogRecord = logRecordCaptor.getValue(); + Assertions.assertThat(actualLogRecord.getMessage()).isEqualTo("Hello!"); + Assertions.assertThat(actualLogRecord.getType()).isEqualTo(LogRecord.LogType.INFO); + Assertions.assertThat(actualLogRecord.getDate()).isNotNull(); + Assertions.assertThat(actualLogRecord.getThreadName()).isNotNull(); + + Mockito.verify(webSocketProgressNotifier).send(eq(triggerName), triggerFiredBundleDTOCaptor.capture()); + TriggerFiredBundleDTO triggerFiredBundleDTO = triggerFiredBundleDTOCaptor.getValue(); + Assertions.assertThat(triggerFiredBundleDTO.getJobKey()).isEqualTo("test-job"); + Assertions.assertThat(triggerFiredBundleDTO.getRepeatCount()).isEqualTo(6); + Assertions.assertThat(triggerFiredBundleDTO.getJobClass()).isEqualTo(SampleJob.class.getName()); + Assertions.assertThat(triggerFiredBundleDTO.getTimesTriggered()).isZero(); + Assertions.assertThat(triggerFiredBundleDTO.getNextFireTime()).isNull(); + Assertions.assertThat(triggerFiredBundleDTO.getPercentage()).isZero(); + Assertions.assertThat(triggerFiredBundleDTO.getFinalFireTime()).isNotNull(); + Assertions.assertThat(triggerFiredBundleDTO.getPreviousFireTime()).isNull(); } @Test