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"); + } }