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 375910af0..3a010d525 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 16c673a27..6b134b416 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;