### Question:
BeanPropertyMatcher implements Matcher<E> { public BeanPropertyMatcher(Class<E> beanClass, String propertyName, Object value) { this.beanProperty = new BeanProperty<>(beanClass, propertyName, true, false); this.value = value; } BeanPropertyMatcher(Class<E> beanClass, String propertyName, Object value); @Override boolean matches(E item);  }### Answer:
@Test public void testMatching() { final EventList<Dog> dogs = new FilterList<>(new BasicEventList<Dog>(), Matchers.beanPropertyMatcher(Dog.class, "name", "Fido")); assertEquals(0, dogs.size()); dogs.add(new Dog("Fido")); assertEquals(1, dogs.size()); dogs.add(new Dog("Barry")); assertEquals(1, dogs.size()); dogs.add(new Dog("Fido")); assertEquals(2, dogs.size()); }