|
23 | 23 | import gdsc.konkuk.platformcore.global.scheduler.TaskNotFoundException;
|
24 | 24 | import gdsc.konkuk.platformcore.global.scheduler.TaskInMemoryRepository;
|
25 | 25 | import java.time.LocalDateTime;
|
| 26 | +import java.util.List; |
26 | 27 | import java.util.concurrent.ScheduledThreadPoolExecutor;
|
27 | 28 | import org.junit.jupiter.api.AfterEach;
|
28 | 29 | import org.junit.jupiter.api.DisplayName;
|
@@ -198,4 +199,34 @@ void should_send_discord_message_when_email_sending_error() throws InterruptedEx
|
198 | 199 | verify(emailClient).sendEmailToReceivers(any(EmailTask.class));
|
199 | 200 | verify(discordClient).sendErrorMessage(any());
|
200 | 201 | }
|
| 202 | + |
| 203 | + @Test |
| 204 | + @DisplayName("모든 작업 취소 성공") |
| 205 | + void should_cancel_all_tasks() { |
| 206 | + // given |
| 207 | + EmailSendRequest emailRequest1 = EmailSendRequestFixture.builder() |
| 208 | + .sendAt(LocalDateTime.now().plusHours(1)).build() |
| 209 | + .getFixture(); |
| 210 | + EmailSendRequest emailRequest2 = EmailSendRequestFixture.builder() |
| 211 | + .sendAt(LocalDateTime.now().plusHours(2)).build() |
| 212 | + .getFixture(); |
| 213 | + EmailTask emailTask1 = emailTaskFacade.register(emailRequest1); |
| 214 | + EmailTask emailTask2 = emailTaskFacade.register(emailRequest2); |
| 215 | + assertEquals(2, executor.getQueue().size()); |
| 216 | + |
| 217 | + // when |
| 218 | + emailTaskFacade.cancelAll(List.of(emailTask1.getId(), emailTask2.getId())); |
| 219 | + |
| 220 | + // then |
| 221 | + assertEquals(0, executor.getQueue().size()); |
| 222 | + assertTrue(emailTaskRepository.findById(emailTask1.getId()).isEmpty()); |
| 223 | + assertTrue(emailTaskRepository.findById(emailTask2.getId()).isEmpty()); |
| 224 | + assertThrows( |
| 225 | + TaskNotFoundException.class, |
| 226 | + () -> taskInMemoryRepository.getTask(emailTask1.getId().toString())); |
| 227 | + assertThrows( |
| 228 | + TaskNotFoundException.class, |
| 229 | + () -> taskInMemoryRepository.getTask(emailTask2.getId().toString())); |
| 230 | + } |
| 231 | + |
201 | 232 | }
|
0 commit comments