DATACMNS-963 - Returned type returns distinct input properties now.

We now manually filter already gathered property names in ReturnedInterface.getInputProperties() as we have to deal with duplications for properties with the same name at different levels of the inheritance hierarchy.
This commit is contained in:
Oliver Gierke
2016-12-21 13:59:57 +01:00
parent 658e9bf09b
commit 3b635e665a
2 changed files with 25 additions and 1 deletions

View File

@@ -179,6 +179,20 @@ public class ReturnedTypeUnitTests {
assertThat(type.isProjecting(), is(false));
}
/**
* @see DATACMNS-963
*/
@Test
public void detectsDistinctInputProperties() {
ReturnedType type = ReturnedType.of(Child.class, Object.class, new SpelAwareProxyProjectionFactory());
List<String> properties = type.getInputProperties();
assertThat(properties, hasSize(1));
assertThat(properties, contains("firstname"));
}
private static ReturnedType getReturnedType(String methodName, Class<?>... parameters) throws Exception {
return getQueryMethod(methodName, parameters).getResultProcessor().getReturnedType();
}
@@ -262,4 +276,12 @@ public class ReturnedTypeUnitTests {
@Value("#{target.firstname + ' ' + target.lastname}")
String getFullName();
}
static interface Parent {
String getFirstname();
}
static interface Child extends Parent {
String getFirstname();
}
}