From 20c348704dcf446996d21371a74786414249d86c Mon Sep 17 00:00:00 2001 From: Marcos Lopez Gonzalez Date: Tue, 5 Sep 2023 17:00:11 +0200 Subject: [PATCH] #496 accept different owner matches (#504) --- .../collections/service/LookupServiceIT.java | 18 ++++++------------ .../lookup/matchers/InstitutionMatcher.java | 4 ++-- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/collections/service/LookupServiceIT.java b/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/collections/service/LookupServiceIT.java index 375910af09..3a010d525e 100644 --- a/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/collections/service/LookupServiceIT.java +++ b/registry-integration-tests/src/test/java/org/gbif/registry/ws/it/collections/service/LookupServiceIT.java @@ -389,20 +389,14 @@ public void ownerInstitutionCodeTest() { LookupResult result = lookupService.lookup(params); // Should - assertEquals(Match.MatchType.NONE, result.getInstitutionMatch().getMatchType()); - assertEquals(Match.Status.AMBIGUOUS_OWNER, result.getInstitutionMatch().getStatus()); + // https://github.com/gbif/registry/issues/496 we accept matches with different owner but we + // flag them + assertEquals(Match.MatchType.EXACT, result.getInstitutionMatch().getMatchType()); + assertEquals(Match.Status.ACCEPTED, result.getInstitutionMatch().getStatus()); + assertTrue(result.getInstitutionMatch().getReasons().contains(Match.Reason.DIFFERENT_OWNER)); assertEquals(Match.MatchType.NONE, result.getCollectionMatch().getMatchType()); assertNull(result.getCollectionMatch().getStatus()); - assertEquals(1, result.getAlternativeMatches().getInstitutionMatches().size()); - - Match alternative = - result.getAlternativeMatches().getInstitutionMatches().get(0); - assertEquals(Match.MatchType.EXACT, alternative.getMatchType()); - assertEquals(i2.getKey(), alternative.getEntityMatched().getKey()); - assertEquals(3, alternative.getReasons().size()); - assertTrue(alternative.getReasons().contains(Match.Reason.CODE_MATCH)); - assertTrue(alternative.getReasons().contains(Match.Reason.IDENTIFIER_MATCH)); - assertTrue(alternative.getReasons().contains(Match.Reason.DIFFERENT_OWNER)); + assertEquals(0, result.getAlternativeMatches().getInstitutionMatches().size()); } @Test diff --git a/registry-service/src/main/java/org/gbif/registry/service/collections/lookup/matchers/InstitutionMatcher.java b/registry-service/src/main/java/org/gbif/registry/service/collections/lookup/matchers/InstitutionMatcher.java index 16c673a278..6b134b416c 100644 --- a/registry-service/src/main/java/org/gbif/registry/service/collections/lookup/matchers/InstitutionMatcher.java +++ b/registry-service/src/main/java/org/gbif/registry/service/collections/lookup/matchers/InstitutionMatcher.java @@ -120,8 +120,8 @@ private Matches setAccepted(Matches matc matches.getExplicitMatches(), matches.getExactMatches(), matches.getFuzzyMatches(), - m -> !m.getReasons().contains(DIFFERENT_OWNER), - m -> !m.getReasons().contains(DIFFERENT_OWNER), + null, + null, Match.Status.AMBIGUOUS_OWNER)); return matches;