Browse Source

DATACMNS-1743 - Polishing.

We now avoid identifier conversion in ReflectionrepositoryConverter if not necessary. Reestablish a couple of unit tests for DomainClassConverter that were disabled by accident.
pull/452/head
Oliver Drotbohm 6 years ago
parent
commit
52154f6986
No known key found for this signature in database
GPG Key ID: C25FBFA0DA493A1D
  1. 12
      src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java
  2. 13
      src/test/java/org/springframework/data/repository/support/DomainClassConverterUnitTests.java

12
src/main/java/org/springframework/data/repository/support/ReflectionRepositoryInvoker.java

@ -178,8 +178,8 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { @@ -178,8 +178,8 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker {
* @see org.springframework.data.rest.core.invoke.RepositoryInvoker#invokeQueryMethod(java.lang.reflect.Method, java.util.Map, org.springframework.data.domain.Pageable, org.springframework.data.domain.Sort)
*/
@Override
public Optional<Object> invokeQueryMethod(Method method, MultiValueMap<String, ?> parameters,
Pageable pageable, Sort sort) {
public Optional<Object> invokeQueryMethod(Method method, MultiValueMap<String, ?> parameters, Pageable pageable,
Sort sort) {
Assert.notNull(method, "Method must not be null!");
Assert.notNull(parameters, "Parameters must not be null!");
@ -191,8 +191,8 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { @@ -191,8 +191,8 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker {
return returnAsOptional(invoke(method, prepareParameters(method, parameters, pageable, sort)));
}
private Object[] prepareParameters(Method method, MultiValueMap<String, ?> rawParameters,
Pageable pageable, Sort sort) {
private Object[] prepareParameters(Method method, MultiValueMap<String, ?> rawParameters, Pageable pageable,
Sort sort) {
List<MethodParameter> parameters = new MethodParameters(method, Optional.of(PARAM_ANNOTATION)).getParameters();
@ -286,6 +286,10 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker { @@ -286,6 +286,10 @@ class ReflectionRepositoryInvoker implements RepositoryInvoker {
Assert.notNull(id, "Id must not be null!");
if (idType.isInstance(id)) {
return id;
}
Object result = conversionService.convert(id, idType);
if (result == null) {

13
src/test/java/org/springframework/data/repository/support/DomainClassConverterUnitTests.java

@ -100,21 +100,16 @@ class DomainClassConverterUnitTests { @@ -100,21 +100,16 @@ class DomainClassConverterUnitTests {
assertMatches(false);
}
// DATACMNS-233
@Test // DATACMNS-233
void returnsNullForNullSource() {
assertThat(converter.convert(null, STRING_TYPE, USER_TYPE)).isNull();
}
// DATACMNS-233
@Test // DATACMNS-233
void returnsNullForEmptyStringSource() {
assertThat(converter.convert("", STRING_TYPE, USER_TYPE)).isNull();
}
private void assertMatches(boolean matchExpected) {
assertThat(converter.matches(STRING_TYPE, USER_TYPE)).isEqualTo(matchExpected);
}
@Test
void convertsStringToUserCorrectly() throws Exception {
@ -234,6 +229,10 @@ class DomainClassConverterUnitTests { @@ -234,6 +229,10 @@ class DomainClassConverterUnitTests {
return ctx;
}
private void assertMatches(boolean matchExpected) {
assertThat(converter.matches(STRING_TYPE, USER_TYPE)).isEqualTo(matchExpected);
}
static interface Wrapper {
void foo(@ModelAttribute User user);

Loading…
Cancel
Save