diff --git a/backend/src/main/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceService.java b/backend/src/main/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceService.java index b2ef53c3..bc820e6f 100644 --- a/backend/src/main/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceService.java +++ b/backend/src/main/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceService.java @@ -5,7 +5,7 @@ import org.raddatz.familienarchiv.model.Person; import org.raddatz.familienarchiv.relationship.dto.InferredRelationshipDTO; import org.raddatz.familienarchiv.relationship.dto.InferredRelationshipWithPersonDTO; import org.raddatz.familienarchiv.relationship.dto.PersonNodeDTO; -import org.raddatz.familienarchiv.repository.PersonRepository; +import org.raddatz.familienarchiv.service.PersonService; import org.springframework.stereotype.Service; import java.util.*; @@ -28,7 +28,7 @@ public class RelationshipInferenceService { private static final Map, String> LABEL_MAP = buildLabelMap(); private final PersonRelationshipRepository relationshipRepository; - private final PersonRepository personRepository; + private final PersonService personService; private static Map, String> buildLabelMap() { Map, String> m = new HashMap<>(); @@ -83,7 +83,7 @@ public class RelationshipInferenceService { List ids = new ArrayList<>(shortestPaths.keySet()); Map byId = new HashMap<>(); - for (Person p : personRepository.findAllById(ids)) { + for (Person p : personService.getAllById(ids)) { byId.put(p.getId(), p); } diff --git a/backend/src/test/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceServiceTest.java b/backend/src/test/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceServiceTest.java index 894f0ceb..a146b564 100644 --- a/backend/src/test/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceServiceTest.java +++ b/backend/src/test/java/org/raddatz/familienarchiv/relationship/RelationshipInferenceServiceTest.java @@ -7,7 +7,8 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import org.raddatz.familienarchiv.model.Person; import org.raddatz.familienarchiv.relationship.dto.InferredRelationshipDTO; -import org.raddatz.familienarchiv.repository.PersonRepository; +import org.raddatz.familienarchiv.relationship.dto.InferredRelationshipWithPersonDTO; +import org.raddatz.familienarchiv.service.PersonService; import java.time.Instant; import java.util.List; @@ -17,6 +18,7 @@ import java.util.UUID; import static java.util.Collections.emptyList; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.anyCollection; +import static org.mockito.ArgumentMatchers.anyList; import static org.mockito.Mockito.when; import static org.raddatz.familienarchiv.relationship.RelationToken.*; import static org.raddatz.familienarchiv.relationship.RelationType.*; @@ -34,7 +36,7 @@ import static org.raddatz.familienarchiv.relationship.RelationType.*; class RelationshipInferenceServiceTest { @Mock PersonRelationshipRepository relationshipRepository; - @Mock PersonRepository personRepository; + @Mock PersonService personService; @InjectMocks RelationshipInferenceService service; // --- 1: parent --- @@ -302,6 +304,20 @@ class RelationshipInferenceServiceTest { assertThat(service.infer(a.getId(), b.getId())).isEmpty(); } + // --- 19: findAllFor delegates person resolution to PersonService --- + @Test + void findAllFor_resolves_persons_via_PersonService() { + Person parent = person(); + Person child = person(); + givenEdges(parentOf(parent, child)); + when(personService.getAllById(anyList())).thenReturn(List.of(child)); + + List results = service.findAllFor(parent.getId()); + + assertThat(results).hasSize(1); + assertThat(results.get(0).person().displayName()).isEqualTo(child.getDisplayName()); + } + // --- helpers --- private void givenEdges(PersonRelationship... edges) {