diff --git a/backend/src/test/java/org/raddatz/familienarchiv/service/AnnotationServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/service/AnnotationServiceTest.java index b4813491..cd736005 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/service/AnnotationServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/service/AnnotationServiceTest.java @@ -9,6 +9,7 @@ import org.raddatz.familienarchiv.dto.CreateAnnotationDTO; import org.raddatz.familienarchiv.exception.DomainException; import org.raddatz.familienarchiv.model.DocumentAnnotation; import org.raddatz.familienarchiv.repository.AnnotationRepository; +import org.raddatz.familienarchiv.repository.TranscriptionBlockRepository; import java.util.List; import java.util.Optional; @@ -27,6 +28,7 @@ import static org.springframework.http.HttpStatus.NOT_FOUND; class AnnotationServiceTest { @Mock AnnotationRepository annotationRepository; + @Mock TranscriptionBlockRepository blockRepository; @InjectMocks AnnotationService annotationService; // ─── createAnnotation ───────────────────────────────────────────────────── @@ -163,9 +165,28 @@ class AnnotationServiceTest { annotationService.deleteAnnotation(docId, annotId, ownerId); + verify(blockRepository).deleteByAnnotationId(annotId); verify(annotationRepository).delete(annotation); } + @Test + void deleteAnnotation_deletesLinkedTranscriptionBlock_beforeAnnotation() { + UUID docId = UUID.randomUUID(); + UUID annotId = UUID.randomUUID(); + UUID ownerId = UUID.randomUUID(); + + DocumentAnnotation annotation = DocumentAnnotation.builder() + .id(annotId).documentId(docId).createdBy(ownerId).build(); + when(annotationRepository.findByIdAndDocumentId(annotId, docId)) + .thenReturn(Optional.of(annotation)); + + annotationService.deleteAnnotation(docId, annotId, ownerId); + + var inOrder = org.mockito.Mockito.inOrder(blockRepository, annotationRepository); + inOrder.verify(blockRepository).deleteByAnnotationId(annotId); + inOrder.verify(annotationRepository).delete(annotation); + } + @Test void deleteAnnotation_throwsForbidden_whenUserIdIsNull() { UUID docId = UUID.randomUUID();