fix(test): update ThumbnailAsyncRunnerTest to use DocumentRepository

ThumbnailAsyncRunner was changed to inject DocumentRepository directly
(breaking the DocumentService cycle), but the test still passed
DocumentService to the constructor — a type mismatch that prevented
the test suite from compiling.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Marcel
2026-05-05 16:22:23 +02:00
parent fbbe0789d0
commit 16dacd8f4c

View File

@@ -17,22 +17,22 @@ import static org.mockito.Mockito.*;
class ThumbnailAsyncRunnerTest { class ThumbnailAsyncRunnerTest {
private DocumentService documentService; private DocumentRepository documentRepository;
private ThumbnailService thumbnailService; private ThumbnailService thumbnailService;
private ThumbnailAsyncRunner runner; private ThumbnailAsyncRunner runner;
@BeforeEach @BeforeEach
void setUp() { void setUp() {
documentService = mock(DocumentService.class); documentRepository = mock(DocumentRepository.class);
thumbnailService = mock(ThumbnailService.class); thumbnailService = mock(ThumbnailService.class);
runner = new ThumbnailAsyncRunner(documentService, thumbnailService); runner = new ThumbnailAsyncRunner(documentRepository, thumbnailService);
} }
@Test @Test
void dispatchAfterCommit_whenNoTransaction_dispatchesImmediately() { void dispatchAfterCommit_whenNoTransaction_dispatchesImmediately() {
UUID id = UUID.randomUUID(); UUID id = UUID.randomUUID();
Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build(); Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build();
when(documentService.findById(id)).thenReturn(Optional.of(doc)); when(documentRepository.findById(id)).thenReturn(Optional.of(doc));
runner.dispatchAfterCommit(id); runner.dispatchAfterCommit(id);
@@ -43,7 +43,7 @@ class ThumbnailAsyncRunnerTest {
void dispatchAfterCommit_whenTransactionActive_registersAfterCommitSynchronization() { void dispatchAfterCommit_whenTransactionActive_registersAfterCommitSynchronization() {
UUID id = UUID.randomUUID(); UUID id = UUID.randomUUID();
Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build(); Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build();
when(documentService.findById(id)).thenReturn(Optional.of(doc)); when(documentRepository.findById(id)).thenReturn(Optional.of(doc));
TransactionSynchronizationManager.initSynchronization(); TransactionSynchronizationManager.initSynchronization();
try { try {
@@ -68,7 +68,7 @@ class ThumbnailAsyncRunnerTest {
void dispatchAfterCommit_whenRollback_doesNotDispatch() { void dispatchAfterCommit_whenRollback_doesNotDispatch() {
UUID id = UUID.randomUUID(); UUID id = UUID.randomUUID();
Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build(); Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build();
when(documentService.findById(id)).thenReturn(Optional.of(doc)); when(documentRepository.findById(id)).thenReturn(Optional.of(doc));
TransactionSynchronizationManager.initSynchronization(); TransactionSynchronizationManager.initSynchronization();
try { try {
@@ -87,7 +87,7 @@ class ThumbnailAsyncRunnerTest {
@Test @Test
void generateAsync_skipsWhenDocumentMissing() { void generateAsync_skipsWhenDocumentMissing() {
UUID id = UUID.randomUUID(); UUID id = UUID.randomUUID();
when(documentService.findById(id)).thenReturn(Optional.empty()); when(documentRepository.findById(id)).thenReturn(Optional.empty());
runner.generateAsync(id); runner.generateAsync(id);
@@ -98,7 +98,7 @@ class ThumbnailAsyncRunnerTest {
void generateAsync_timesOutWhenGenerateExceedsLimit() throws Exception { void generateAsync_timesOutWhenGenerateExceedsLimit() throws Exception {
UUID id = UUID.randomUUID(); UUID id = UUID.randomUUID();
Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build(); Document doc = Document.builder().id(id).originalFilename("f.pdf").title("t").build();
when(documentService.findById(id)).thenReturn(Optional.of(doc)); when(documentRepository.findById(id)).thenReturn(Optional.of(doc));
// generate sleeps longer than the timeout — simulates a hung PDFBox render // generate sleeps longer than the timeout — simulates a hung PDFBox render
when(thumbnailService.generate(doc)).thenAnswer(inv -> { when(thumbnailService.generate(doc)).thenAnswer(inv -> {
Thread.sleep(5_000); Thread.sleep(5_000);