|
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