### Question:
PrimitivePropertyMatch extends AbstractMatcher<EventPropertyPrimitive, EventPropertyPrimitive> { @Override public boolean match(EventPropertyPrimitive offer, EventPropertyPrimitive requirement, List<MatchingResultMessage> errorLog) { boolean matchesUnit = unitMatch(offer.getMeasurementUnit(), requirement.getMeasurementUnit(), errorLog); boolean matchesDatatype = datatypeMatch(offer.getRuntimeType(), requirement.getRuntimeType(), errorLog); boolean matchesDomainProperty = domainPropertyMatch(offer.getDomainProperties(), requirement.getDomainProperties (), errorLog); return MatchingUtils.nullCheck(offer, requirement) || (matchesUnit && matchesDatatype && matchesDomainProperty); } PrimitivePropertyMatch(); @Override boolean match(EventPropertyPrimitive offer,
			EventPropertyPrimitive requirement, List<MatchingResultMessage> errorLog);  }### Answer:
@Test public void testNegativePrimitivePropertyMatchDomain() { EventPropertyPrimitive offer = EpProperties.integerEp(Labels.empty(), "timestamp", Geo.lat); EventPropertyPrimitive requirement = EpRequirements.domainPropertyReq(Geo.lng); List<MatchingResultMessage> errorLog = new ArrayList<>(); boolean matches = new PropertyMatch().match(offer, requirement, errorLog); assertFalse(matches); }
@Test public void testPositivePrimitivePropertyMatch() { EventPropertyPrimitive offer = EpProperties.integerEp(Labels.empty(), "timestamp", Geo.lat); EventPropertyPrimitive requirement = EpRequirements.integerReq(); List<MatchingResultMessage> errorLog = new ArrayList<>(); boolean matches = new PropertyMatch().match(offer, requirement, errorLog); assertTrue(matches); }
@Test public void testNegativePrimitivePropertyMatch() { EventPropertyPrimitive offer = EpProperties.integerEp(Labels.empty(), "timestamp", Geo.lat); EventPropertyPrimitive requirement = EpRequirements.stringReq(); List<MatchingResultMessage> errorLog = new ArrayList<>(); boolean matches = new PropertyMatch().match(offer, requirement, errorLog); assertFalse(matches); }