test(#148): service unit tests — 90.2% branch coverage #150

Merged
marcel merged 4 commits from test/148-coverage-controller-specifications into main 2026-03-28 23:42:32 +01:00
Showing only changes of commit d663ba87b0 - Show all commits

View File

@@ -11,6 +11,8 @@ import org.springframework.boot.jdbc.test.autoconfigure.AutoConfigureTestDatabas
import org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest;
import org.springframework.context.annotation.Import;
import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import java.util.List;
import java.util.Optional;
import java.util.Set;
@@ -28,6 +30,9 @@ class PersonRepositoryTest {
@Autowired
private DocumentRepository documentRepository;
@PersistenceContext
private EntityManager entityManager;
// ─── save and findById ────────────────────────────────────────────────────
@Test
@@ -230,6 +235,8 @@ class PersonRepositoryTest {
.sender(source).build());
personRepository.reassignSender(source.getId(), target.getId());
entityManager.flush();
entityManager.clear();
List<Document> docs = documentRepository.findBySenderId(target.getId());
assertThat(docs).hasSize(1);
@@ -250,6 +257,8 @@ class PersonRepositoryTest {
.sender(sender).receivers(Set.of(source)).build());
personRepository.insertMissingReceiverReference(source.getId(), target.getId());
entityManager.flush();
entityManager.clear();
Document reloaded = documentRepository.findById(doc.getId()).orElseThrow();
assertThat(reloaded.getReceivers())
@@ -270,6 +279,8 @@ class PersonRepositoryTest {
.sender(sender).receivers(Set.of(source, target)).build());
personRepository.insertMissingReceiverReference(source.getId(), target.getId());
entityManager.flush();
entityManager.clear();
Document reloaded = documentRepository.findById(doc.getId()).orElseThrow();
long targetCount = reloaded.getReceivers().stream()
@@ -294,6 +305,8 @@ class PersonRepositoryTest {
.sender(sender).receivers(Set.of(toDelete)).build());
personRepository.deleteReceiverReferences(toDelete.getId());
entityManager.flush();
entityManager.clear();
assertThat(documentRepository.findById(doc1.getId()).orElseThrow().getReceivers()).isEmpty();
assertThat(documentRepository.findById(doc2.getId()).orElseThrow().getReceivers()).isEmpty();