@Override
  public Object apply(Object input) {
    return PropertyOrFieldSupport.EXTRACTION.getValueOf(propertyOrFieldName, input);
  }
@Test
  void should_prefer_properties_over_fields() {
    // GIVEN
    Employee employee = new Employee(1L, new Name("Name"), 0) {
      @Override
      public Name getName() {
        return new Name("Overridden Name");
      }
    };
    ByNameSingleExtractor underTest = new ByNameSingleExtractor("name");
    // WHEN
    Object result = underTest.apply(employee);
    // THEN
    then(result).isEqualTo(new Name("Overridden Name"));
  }