### Question:
DomainPropertyMatch extends AbstractMatcher<List<URI>, List<URI>> { @Override public boolean match(List<URI> offer, List<URI> requirement, List<MatchingResultMessage> errorLog) { if (offer == null && ((requirement != null) && requirement.size() > 0)) { return false; } boolean match = MatchingUtils.nullCheck(offer, requirement) || requirement .stream() .allMatch(req -> offer .stream() .anyMatch(of -> req .toString() .equals(of.toString()))); if (!match) buildErrorMessage(errorLog, buildText(requirement)); return match; } DomainPropertyMatch(); @Override boolean match(List<URI> offer, List<URI> requirement, List<MatchingResultMessage> errorLog);  }### Answer:
@Test public void testPositiveDomainPropertyMatch() { List<URI> offeredDomainProperty = buildDomainProperties(Geo.lat); List<URI> requiredDomainProperty = buildDomainProperties(Geo.lat); List<MatchingResultMessage> resultMessage = new ArrayList<>(); boolean matches = new DomainPropertyMatch().match(offeredDomainProperty, requiredDomainProperty, resultMessage); assertTrue(matches); }
@Test public void testNegativeDomainPropertyMatch() { List<URI> offeredDomainProperty = buildDomainProperties(Geo.lat); List<URI> requiredDomainProperty = buildDomainProperties(Geo.lng); List<MatchingResultMessage> resultMessage = new ArrayList<>(); boolean matches = new DomainPropertyMatch().match(offeredDomainProperty, requiredDomainProperty, resultMessage); assertFalse(matches); }