|
19 | 19 | import static org.mockito.Mockito.*;
|
20 | 20 | import static org.springframework.data.domain.Sort.Order.*;
|
21 | 21 |
|
22 |
| -import java.util.Collections; |
23 |
| -import java.util.List; |
24 |
| -import java.util.Objects; |
| 22 | +import java.util.*; |
25 | 23 |
|
26 | 24 | import org.junit.jupiter.api.Test;
|
27 | 25 | import org.springframework.core.convert.converter.Converter;
|
@@ -59,9 +57,11 @@ class QueryMapperUnitTests {
|
59 | 57 | private QueryMapper mapper = createMapper(PostgresDialect.INSTANCE);
|
60 | 58 |
|
61 | 59 | QueryMapper createMapper(R2dbcDialect dialect) {
|
| 60 | + return createMapper(dialect, JsonNodeToStringConverter.INSTANCE, StringToJsonNodeConverter.INSTANCE); |
| 61 | + } |
62 | 62 |
|
63 |
| - R2dbcCustomConversions conversions = R2dbcCustomConversions.of(dialect, JsonNodeToStringConverter.INSTANCE, |
64 |
| - StringToJsonNodeConverter.INSTANCE); |
| 63 | + QueryMapper createMapper(R2dbcDialect dialect, Converter<?, ?>... converters) { |
| 64 | + R2dbcCustomConversions conversions = R2dbcCustomConversions.of(dialect, Arrays.asList(converters)); |
65 | 65 |
|
66 | 66 | R2dbcMappingContext context = new R2dbcMappingContext();
|
67 | 67 | context.setSimpleTypeHolder(conversions.getSimpleTypeHolder());
|
@@ -358,6 +358,18 @@ void shouldMapIsNotIn() {
|
358 | 358 | assertThat(bindings.getCondition()).hasToString("person.name NOT IN (?[$1], ?[$2], ?[$3])");
|
359 | 359 | }
|
360 | 360 |
|
| 361 | + @Test |
| 362 | + void sholdMapIsNotInWithCollectionToStringConverter() { |
| 363 | + |
| 364 | + mapper = createMapper(PostgresDialect.INSTANCE, JsonNodeToStringConverter.INSTANCE, StringToJsonNodeConverter.INSTANCE, CollectionToStringConverter.INSTANCE); |
| 365 | + |
| 366 | + Criteria criteria = Criteria.where("name").notIn("a", "b", "c"); |
| 367 | + |
| 368 | + BoundCondition bindings = map(criteria); |
| 369 | + |
| 370 | + assertThat(bindings.getCondition()).hasToString("person.name NOT IN (?[$1], ?[$2], ?[$3])"); |
| 371 | + } |
| 372 | + |
361 | 373 | @Test // gh-64
|
362 | 374 | void shouldMapIsGt() {
|
363 | 375 |
|
@@ -574,6 +586,15 @@ public String convert(JsonNode source) {
|
574 | 586 | }
|
575 | 587 | }
|
576 | 588 |
|
| 589 | + enum CollectionToStringConverter implements Converter<Collection<?>, String> { |
| 590 | + INSTANCE; |
| 591 | + @Override |
| 592 | + public String convert(Collection<?> source) { |
| 593 | + return source.toString(); |
| 594 | + } |
| 595 | + } |
| 596 | + |
| 597 | + |
577 | 598 | enum StringToJsonNodeConverter implements Converter<String, JsonNode> {
|
578 | 599 | INSTANCE;
|
579 | 600 |
|
|
0 commit comments