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:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user