Skip to content

Commit 6331003

Browse files
committed
#177 - Add tests for NOT IN.
1 parent 353a7e7 commit 6331003

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

src/test/java/org/springframework/data/r2dbc/core/DefaultDatabaseClientUnitTests.java

+23
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.springframework.data.r2dbc.core;
1717

1818
import static org.mockito.Mockito.*;
19+
import static org.springframework.data.r2dbc.query.Criteria.*;
1920

2021
import io.r2dbc.spi.Connection;
2122
import io.r2dbc.spi.ConnectionFactory;
@@ -260,4 +261,26 @@ public void executeShouldBindNamedValuesByIndex() {
260261

261262
verify(statement).bind(0, "foo");
262263
}
264+
265+
@Test // gh-177
266+
public void deleteNotInShouldRenderCorrectQuery() {
267+
268+
Statement statement = mock(Statement.class);
269+
when(connection.createStatement("DELETE FROM tab WHERE tab.pole = $1 AND tab.id NOT IN ($2, $3)"))
270+
.thenReturn(statement);
271+
when(statement.execute()).thenReturn(Mono.empty());
272+
273+
DefaultDatabaseClient databaseClient = (DefaultDatabaseClient) DatabaseClient.builder()
274+
.connectionFactory(connectionFactory)
275+
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(PostgresDialect.INSTANCE)).build();
276+
277+
databaseClient.delete().from("tab").matching(where("pole").is("foo").and("id").notIn(1, 2)) //
278+
.then() //
279+
.as(StepVerifier::create) //
280+
.verifyComplete();
281+
282+
verify(statement).bind(0, "foo");
283+
verify(statement).bind(1, (Object) 1);
284+
verify(statement).bind(2, (Object) 2);
285+
}
263286
}

src/test/java/org/springframework/data/r2dbc/query/QueryMapperUnitTests.java

+3-5
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,13 @@
2020
import static org.springframework.data.domain.Sort.Order.*;
2121

2222
import org.junit.Test;
23+
2324
import org.springframework.data.domain.Sort;
2425
import org.springframework.data.r2dbc.convert.MappingR2dbcConverter;
2526
import org.springframework.data.r2dbc.convert.R2dbcConverter;
2627
import org.springframework.data.r2dbc.dialect.BindMarkersFactory;
2728
import org.springframework.data.r2dbc.dialect.BindTarget;
2829
import org.springframework.data.r2dbc.mapping.SettableValue;
29-
import org.springframework.data.r2dbc.query.BoundCondition;
30-
import org.springframework.data.r2dbc.query.Criteria;
31-
import org.springframework.data.r2dbc.query.QueryMapper;
3230
import org.springframework.data.relational.core.mapping.Column;
3331
import org.springframework.data.relational.core.mapping.RelationalMappingContext;
3432
import org.springframework.data.relational.core.sql.Table;
@@ -158,14 +156,14 @@ public void shouldMapIsIn() {
158156
assertThat(bindings.getCondition().toString()).isEqualTo("person.name IN (?[$1], ?[$2], ?[$3])");
159157
}
160158

161-
@Test // gh-64
159+
@Test // gh-64, gh-177
162160
public void shouldMapIsNotIn() {
163161

164162
Criteria criteria = Criteria.where("name").notIn("a", "b", "c");
165163

166164
BoundCondition bindings = map(criteria);
167165

168-
assertThat(bindings.getCondition().toString()).isEqualTo("NOT person.name IN (?[$1], ?[$2], ?[$3])");
166+
assertThat(bindings.getCondition().toString()).isEqualTo("person.name NOT IN (?[$1], ?[$2], ?[$3])");
169167
}
170168

171169
@Test // gh-64

0 commit comments

Comments
 (0)