From 2d48821f953de3034710b57fb8c7d64344f5ce4f Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 28 Apr 2026 21:40:29 +0200 Subject: [PATCH] refactor(test): TranscriptionServiceTest uses DTO @Builder instead of @AllArgsConstructor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Felix self-review / Sara (PR #366 review). The trailing-`List.of()` pattern introduced when mentionedPersons was added to the DTOs is brittle: every future field forces another grep-and-edit pass across this file. Switch the 8 call sites (1 Create, 7 Update) to .builder() so the test only specifies the fields it cares about — future DTO growth is invisible to tests that don't touch the new field. Refs #362 #366 Co-Authored-By: Claude Opus 4.7 --- .../service/TranscriptionServiceTest.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java index 7eace34d..8aa6ee99 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/TranscriptionServiceTest.java @@ -98,7 +98,9 @@ class TranscriptionServiceTest { return b; }); - CreateTranscriptionBlockDTO dto = new CreateTranscriptionBlockDTO(1, 0.1, 0.2, 0.3, 0.4, "hello", null, java.util.List.of()); + CreateTranscriptionBlockDTO dto = CreateTranscriptionBlockDTO.builder() + .pageNumber(1).x(0.1).y(0.2).width(0.3).height(0.4) + .text("hello").build(); TranscriptionBlock result = transcriptionService.createBlock(docId, dto, userId); @@ -168,7 +170,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("new text", null, java.util.List.of()); + UpdateTranscriptionBlockDTO dto = UpdateTranscriptionBlockDTO.builder().text("new text").build(); TranscriptionBlock result = transcriptionService.updateBlock(docId, blockId, dto, userId); @@ -189,7 +191,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - UpdateTranscriptionBlockDTO dto = new UpdateTranscriptionBlockDTO("text", "Anrede", java.util.List.of()); + UpdateTranscriptionBlockDTO dto = UpdateTranscriptionBlockDTO.builder().text("text").label("Anrede").build(); TranscriptionBlock result = transcriptionService.updateBlock(docId, blockId, dto, UUID.randomUUID()); @@ -208,7 +210,7 @@ class TranscriptionServiceTest { Document.builder().scriptType(ScriptType.TYPEWRITER).build()); TranscriptionBlock result = transcriptionService.updateBlock( - docId, blockId, new UpdateTranscriptionBlockDTO("new", null, java.util.List.of()), UUID.randomUUID()); + docId, blockId, UpdateTranscriptionBlockDTO.builder().text("new").build(), UUID.randomUUID()); assertThat(result.getSource()).isEqualTo(BlockSource.MANUAL); } @@ -226,7 +228,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.HANDWRITING_KURRENT).sender(sender).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null, java.util.List.of()), UUID.randomUUID()); + transcriptionService.updateBlock(docId, blockId, UpdateTranscriptionBlockDTO.builder().text("text").build(), UUID.randomUUID()); verify(senderModelService).checkAndTriggerTraining(senderId); } @@ -242,7 +244,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.HANDWRITING_KURRENT).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("text", null, java.util.List.of()), UUID.randomUUID()); + transcriptionService.updateBlock(docId, blockId, UpdateTranscriptionBlockDTO.builder().text("text").build(), UUID.randomUUID()); verify(senderModelService, never()).checkAndTriggerTraining(any()); } @@ -477,7 +479,7 @@ class TranscriptionServiceTest { Document.builder().scriptType(ScriptType.TYPEWRITER).build()); when(annotationRepository.findById(annotId)).thenReturn(Optional.of(annotation)); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("new text", null, java.util.List.of()), userId); + transcriptionService.updateBlock(docId, blockId, UpdateTranscriptionBlockDTO.builder().text("new text").build(), userId); @SuppressWarnings("unchecked") ArgumentCaptor> payloadCaptor = ArgumentCaptor.forClass(Map.class); @@ -502,7 +504,7 @@ class TranscriptionServiceTest { when(documentService.getDocumentById(any())).thenReturn( Document.builder().scriptType(ScriptType.TYPEWRITER).build()); - transcriptionService.updateBlock(docId, blockId, new UpdateTranscriptionBlockDTO("same text", null, java.util.List.of()), userId); + transcriptionService.updateBlock(docId, blockId, UpdateTranscriptionBlockDTO.builder().text("same text").build(), userId); verify(auditService, never()).logAfterCommit(any(), any(), any(), any()); }