Fix argument conversion in QuerydslPredicateBuilder.
We now consider the correct argument type instead of checking assignability of the actual property type against the input value. Closes: #2649 Original Pull Request: #2650
This commit is contained in:
committed by
Christoph Strobl
parent
d25fd39974
commit
9e94e110e4
@@ -19,10 +19,12 @@ import static org.assertj.core.api.Assertions.*;
|
||||
import static org.assertj.core.api.Assumptions.*;
|
||||
import static org.springframework.test.util.ReflectionTestUtils.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.data.querydsl.Address;
|
||||
import org.springframework.data.querydsl.QSpecialUser;
|
||||
import org.springframework.data.querydsl.QUser;
|
||||
@@ -31,7 +33,6 @@ import org.springframework.data.querydsl.SimpleEntityPathResolver;
|
||||
import org.springframework.data.querydsl.User;
|
||||
import org.springframework.data.querydsl.UserWrapper;
|
||||
import org.springframework.data.querydsl.Users;
|
||||
// import org.springframework.data.util.ClassTypeInformation;
|
||||
import org.springframework.data.util.TypeInformation;
|
||||
import org.springframework.data.util.Version;
|
||||
import org.springframework.format.support.DefaultFormattingConversionService;
|
||||
@@ -181,6 +182,18 @@ class QuerydslPredicateBuilderUnitTests {
|
||||
assertThat(constant.getConstant()).isEqualTo("rivers,two");
|
||||
}
|
||||
|
||||
@Test
|
||||
void resolvesCommaSeparatedArgumentToListCorrectly() {
|
||||
|
||||
values.add("nickNames", "Walt,Heisenberg");
|
||||
|
||||
var predicate = builder.getPredicate(USER_TYPE, values, DEFAULT_BINDINGS);
|
||||
|
||||
var constant = (Constant<Object>) ((List<?>) getField(getField(predicate, "mixin"), "args")).get(0);
|
||||
|
||||
assertThat(constant.getConstant()).isEqualTo(Arrays.asList("Walt", "Heisenberg"));
|
||||
}
|
||||
|
||||
@Test // DATACMNS-883
|
||||
void automaticallyInsertsAnyStepInCollectionReference() {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user