From befecc9864daa6b3666376a5fb4600da905c7463 Mon Sep 17 00:00:00 2001 From: Marcel Date: Mon, 18 May 2026 22:24:17 +0200 Subject: [PATCH] refactor(document): extract factory helpers in DocumentLazyLoadingTest Replace repeated personRepository.save/tagRepository.save/documentRepository.save boilerplate with savedPerson(), savedTag(), savedDocument() helpers. Each test body is now 2-3 lines of relevant setup. Co-Authored-By: Claude Sonnet 4.6 --- .../document/DocumentLazyLoadingTest.java | 80 +++++++++---------- 1 file changed, 36 insertions(+), 44 deletions(-) diff --git a/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentLazyLoadingTest.java b/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentLazyLoadingTest.java index 2762df64..09391662 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentLazyLoadingTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/document/DocumentLazyLoadingTest.java @@ -63,16 +63,10 @@ class DocumentLazyLoadingTest { @Test void getDocumentById_tagsAndReceiversAccessible_afterReturnFromService() { - Person sender = personRepository.save(Person.builder().firstName("Max").lastName("LzSender").build()); - Person receiver = personRepository.save(Person.builder().firstName("Anna").lastName("LzReceiver").build()); - Tag tag = tagRepository.save(Tag.builder().name("LzTag").build()); - Document doc = documentRepository.save(Document.builder() - .title("LazyTest").originalFilename("lazy_test.pdf") - .status(DocumentStatus.UPLOADED) - .sender(sender) - .receivers(new HashSet<>(Set.of(receiver))) - .tags(new HashSet<>(Set.of(tag))) - .build()); + Person sender = savedPerson("Max", "LzSender"); + Person receiver = savedPerson("Anna", "LzReceiver"); + Tag tag = savedTag("LzTag"); + Document doc = savedDocument("LazyTest", "lazy_test.pdf", sender, Set.of(receiver), Set.of(tag)); Document result = documentService.getDocumentById(doc.getId()); @@ -86,15 +80,10 @@ class DocumentLazyLoadingTest { @Test void getRecentActivity_collectionsAccessibleAfterReturn() { - Person sender = personRepository.save(Person.builder().firstName("Hans").lastName("RaSender").build()); - Tag tag = tagRepository.save(Tag.builder().name("RaTag").build()); + Person sender = savedPerson("Hans", "RaSender"); + Tag tag = savedTag("RaTag"); for (int i = 0; i < 3; i++) { - documentRepository.save(Document.builder() - .title("RaDoc " + i).originalFilename("ra_doc" + i + ".pdf") - .status(DocumentStatus.UPLOADED) - .sender(sender) - .tags(new HashSet<>(Set.of(tag))) - .build()); + savedDocument("RaDoc " + i, "ra_doc" + i + ".pdf", sender, Set.of(), Set.of(tag)); } List results = documentService.getRecentActivity(3); @@ -108,16 +97,10 @@ class DocumentLazyLoadingTest { @Test void searchDocuments_receiverSort_doesNotThrowLazyInitializationException() { - Person sender = personRepository.save(Person.builder().firstName("Hans").lastName("SrSender").build()); - Person receiver = personRepository.save(Person.builder().firstName("Anna").lastName("SrReceiver").build()); - Tag tag = tagRepository.save(Tag.builder().name("SrTag").build()); - documentRepository.save(Document.builder() - .title("SrDoc").originalFilename("sr_doc.pdf") - .status(DocumentStatus.UPLOADED) - .sender(sender) - .receivers(new HashSet<>(Set.of(receiver))) - .tags(new HashSet<>(Set.of(tag))) - .build()); + Person sender = savedPerson("Hans", "SrSender"); + Person receiver = savedPerson("Anna", "SrReceiver"); + Tag tag = savedTag("SrTag"); + savedDocument("SrDoc", "sr_doc.pdf", sender, Set.of(receiver), Set.of(tag)); DocumentSearchResult result = documentService.searchDocuments( null, null, null, null, null, null, null, null, @@ -131,14 +114,9 @@ class DocumentLazyLoadingTest { @Test void searchDocuments_senderSort_doesNotThrowLazyInitializationException() { - Person sender = personRepository.save(Person.builder().firstName("Hans").lastName("SsSender").build()); - Tag tag = tagRepository.save(Tag.builder().name("SsTag").build()); - documentRepository.save(Document.builder() - .title("SsDoc").originalFilename("ss_doc.pdf") - .status(DocumentStatus.UPLOADED) - .sender(sender) - .tags(new HashSet<>(Set.of(tag))) - .build()); + Person sender = savedPerson("Hans", "SsSender"); + Tag tag = savedTag("SsTag"); + savedDocument("SsDoc", "ss_doc.pdf", sender, Set.of(), Set.of(tag)); assertThatCode(() -> documentService.searchDocuments( null, null, null, null, null, null, null, null, @@ -149,14 +127,9 @@ class DocumentLazyLoadingTest { @Test void dashboardService_getResume_accessesReceiversViaGetDocumentById_withoutException() { - Person sender = personRepository.save(Person.builder().firstName("Max").lastName("DsSender").build()); - Person receiver = personRepository.save(Person.builder().firstName("Anna").lastName("DsReceiver").build()); - Document doc = documentRepository.save(Document.builder() - .title("DashboardTest").originalFilename("dashboard_test.pdf") - .status(DocumentStatus.UPLOADED) - .sender(sender) - .receivers(new HashSet<>(Set.of(receiver))) - .build()); + Person sender = savedPerson("Max", "DsSender"); + Person receiver = savedPerson("Anna", "DsReceiver"); + Document doc = savedDocument("DashboardTest", "dashboard_test.pdf", sender, Set.of(receiver), Set.of()); UUID fakeUserId = UUID.randomUUID(); when(auditLogQueryService.findMostRecentDocumentForUser(any())).thenReturn(Optional.of(doc.getId())); when(auditLogQueryService.findRecentContributorsPerDocument(any())).thenReturn(java.util.Map.of()); @@ -164,4 +137,23 @@ class DocumentLazyLoadingTest { assertThatCode(() -> dashboardService.getResume(fakeUserId)) .doesNotThrowAnyException(); } + + private Person savedPerson(String firstName, String lastName) { + return personRepository.save(Person.builder().firstName(firstName).lastName(lastName).build()); + } + + private Tag savedTag(String name) { + return tagRepository.save(Tag.builder().name(name).build()); + } + + private Document savedDocument(String title, String filename, Person sender, + Set receivers, Set tags) { + return documentRepository.save(Document.builder() + .title(title).originalFilename(filename) + .status(DocumentStatus.UPLOADED) + .sender(sender) + .receivers(new HashSet<>(receivers)) + .tags(new HashSet<>(tags)) + .build()); + } }