From e0fac783e81650e84c480a1bbb17e13eb8b9ee3a Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 6 Jun 2026 15:30:30 +0200 Subject: [PATCH] feat(person): add findByDisplayNameContaining service method Co-Authored-By: Claude Sonnet 4.6 --- .../raddatz/familienarchiv/person/PersonService.java | 4 ++++ .../familienarchiv/person/PersonServiceTest.java | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/backend/src/main/java/org/raddatz/familienarchiv/person/PersonService.java b/backend/src/main/java/org/raddatz/familienarchiv/person/PersonService.java index 81fbb406..23d38baa 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/person/PersonService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/person/PersonService.java @@ -99,6 +99,10 @@ public class PersonService { return personRepository.findAllById(ids); } + public List findByDisplayNameContaining(String fragment) { + return personRepository.searchByName(fragment); + } + public List findAllFamilyMembers() { return personRepository.findByFamilyMemberTrueOrderByLastNameAscFirstNameAsc(); } diff --git a/backend/src/test/java/org/raddatz/familienarchiv/person/PersonServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/person/PersonServiceTest.java index 18008afa..865ae9ad 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/person/PersonServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/person/PersonServiceTest.java @@ -898,4 +898,15 @@ class PersonServiceTest { .extracting(e -> ((DomainException) e).getStatus().value()) .isEqualTo(403); } + + @Test + void findByDisplayNameContaining_delegatesToSearchByName() { + Person walter = Person.builder().id(UUID.randomUUID()).firstName("Walter").lastName("Müller").build(); + when(personRepository.searchByName("Walter")).thenReturn(List.of(walter)); + + List result = personService.findByDisplayNameContaining("Walter"); + + assertThat(result).containsExactly(walter); + verify(personRepository).searchByName("Walter"); + } }