#2 - Adapt to R2DBC API changes.

This commit is contained in:
Mark Paluch
2018-08-17 16:24:56 +02:00
parent 1464df99d4
commit f223475112
20 changed files with 229 additions and 140 deletions

View File

@@ -67,7 +67,7 @@ public class DatabaseClientIntegrationTests extends R2dbcIntegrationTestSupport
databaseClient.execute().sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
.bind(0, 42055) //
.bind(1, "SCHAUFELRADBAGGER") //
.bindNull("$3") //
.bindNull("$3", Integer.class) //
.fetch().rowsUpdated() //
.as(StepVerifier::create) //
.expectNext(1) //
@@ -86,7 +86,7 @@ public class DatabaseClientIntegrationTests extends R2dbcIntegrationTestSupport
databaseClient.execute().sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
.bind(0, 42055) //
.bind(1, "SCHAUFELRADBAGGER") //
.bindNull("$3") //
.bindNull("$3", Integer.class) //
.fetch().rowsUpdated() //
.as(StepVerifier::create) //
.expectErrorSatisfies(exception -> {
@@ -125,7 +125,7 @@ public class DatabaseClientIntegrationTests extends R2dbcIntegrationTestSupport
databaseClient.insert().into("legoset")//
.value("id", 42055) //
.value("name", "SCHAUFELRADBAGGER") //
.nullValue("manual") //
.nullValue("manual", Integer.class) //
.exchange() //
.flatMapMany(it -> it.extract((r, m) -> r.get("id", Integer.class)).all()) //
.as(StepVerifier::create) //
@@ -142,7 +142,7 @@ public class DatabaseClientIntegrationTests extends R2dbcIntegrationTestSupport
databaseClient.insert().into("legoset")//
.value("id", 42055) //
.value("name", "SCHAUFELRADBAGGER") //
.nullValue("manual") //
.nullValue("manual", Integer.class) //
.then() //
.as(StepVerifier::create) //
.verifyComplete();

View File

@@ -71,7 +71,7 @@ public class TransactionalDatabaseClientIntegrationTests extends R2dbcIntegratio
return db.execute().sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
.bind(0, 42055) //
.bind(1, "SCHAUFELRADBAGGER") //
.bindNull("$3") //
.bindNull("$3", Integer.class) //
.fetch().rowsUpdated();
});
@@ -91,7 +91,7 @@ public class TransactionalDatabaseClientIntegrationTests extends R2dbcIntegratio
.sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
.bind(0, 42055) //
.bind(1, "SCHAUFELRADBAGGER") //
.bindNull("$3") //
.bindNull("$3", Integer.class) //
.fetch().rowsUpdated();
integerFlux.as(StepVerifier::create) //
@@ -147,7 +147,7 @@ public class TransactionalDatabaseClientIntegrationTests extends R2dbcIntegratio
return db.execute().sql("INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)") //
.bind(0, 42055) //
.bind(1, "SCHAUFELRADBAGGER") //
.bindNull("$3") //
.bindNull("$3", Integer.class) //
.fetch().rowsUpdated().then(Mono.error(new IllegalStateException("failed")));
});

View File

@@ -33,13 +33,13 @@ import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.convert.EntityInstantiators;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.jdbc.testing.R2dbcIntegrationTestSupport;
import org.springframework.data.r2dbc.function.DatabaseClient;
import org.springframework.data.r2dbc.function.DefaultReactiveDataAccessStrategy;
import org.springframework.data.r2dbc.function.TransactionalDatabaseClient;
import org.springframework.data.r2dbc.repository.support.R2dbcRepositoryFactory;
import org.springframework.data.relational.core.conversion.BasicRelationalConverter;
import org.springframework.data.relational.core.mapping.RelationalMappingContext;
import org.springframework.data.relational.core.mapping.Table;
import org.springframework.data.repository.reactive.ReactiveCrudRepository;
@@ -66,7 +66,8 @@ public class R2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestSupport
this.connectionFactory = createConnectionFactory();
this.databaseClient = DatabaseClient.builder().connectionFactory(connectionFactory)
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(mappingContext, new EntityInstantiators())).build();
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(new BasicRelationalConverter(mappingContext)))
.build();
this.jdbc = createJdbcTemplate(createDataSource());
@@ -136,7 +137,8 @@ public class R2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestSupport
public void shouldInsertItemsTransactional() {
TransactionalDatabaseClient client = TransactionalDatabaseClient.builder().connectionFactory(connectionFactory)
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(mappingContext, new EntityInstantiators())).build();
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(new BasicRelationalConverter(mappingContext)))
.build();
LegoSetRepository transactionalRepository = new R2dbcRepositoryFactory(client, mappingContext)
.getRepository(LegoSetRepository.class);

View File

@@ -16,7 +16,8 @@
package org.springframework.data.r2dbc.repository.query;
import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
import java.lang.reflect.Method;
@@ -32,6 +33,7 @@ import org.springframework.data.projection.SpelAwareProxyProjectionFactory;
import org.springframework.data.r2dbc.function.DatabaseClient;
import org.springframework.data.r2dbc.function.DatabaseClient.GenericExecuteSpec;
import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter;
import org.springframework.data.relational.core.conversion.BasicRelationalConverter;
import org.springframework.data.relational.core.mapping.RelationalMappingContext;
import org.springframework.data.repository.Repository;
import org.springframework.data.repository.core.RepositoryMetadata;
@@ -63,7 +65,7 @@ public class StringBasedR2dbcQueryUnitTests {
public void setUp() {
this.mappingContext = new RelationalMappingContext();
this.converter = new MappingR2dbcConverter(this.mappingContext);
this.converter = new MappingR2dbcConverter(new BasicRelationalConverter(this.mappingContext));
this.metadata = AbstractRepositoryMetadata.getMetadata(SampleRepository.class);
this.factory = new SpelAwareProxyProjectionFactory();

View File

@@ -33,11 +33,11 @@ import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.springframework.data.annotation.Id;
import org.springframework.data.convert.EntityInstantiators;
import org.springframework.data.jdbc.testing.R2dbcIntegrationTestSupport;
import org.springframework.data.r2dbc.function.DatabaseClient;
import org.springframework.data.r2dbc.function.DefaultReactiveDataAccessStrategy;
import org.springframework.data.r2dbc.function.convert.MappingR2dbcConverter;
import org.springframework.data.relational.core.conversion.BasicRelationalConverter;
import org.springframework.data.relational.core.mapping.RelationalMappingContext;
import org.springframework.data.relational.core.mapping.RelationalPersistentEntity;
import org.springframework.data.relational.core.mapping.Table;
@@ -66,13 +66,14 @@ public class SimpleR2dbcRepositoryIntegrationTests extends R2dbcIntegrationTestS
this.connectionFactory = createConnectionFactory();
this.databaseClient = DatabaseClient.builder().connectionFactory(connectionFactory)
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(mappingContext, new EntityInstantiators())).build();
.dataAccessStrategy(new DefaultReactiveDataAccessStrategy(new BasicRelationalConverter(mappingContext)))
.build();
RelationalEntityInformation<LegoSet, Integer> entityInformation = new MappingRelationalEntityInformation<>(
(RelationalPersistentEntity<LegoSet>) mappingContext.getRequiredPersistentEntity(LegoSet.class));
this.repository = new SimpleR2dbcRepository<>(entityInformation, databaseClient,
new MappingR2dbcConverter(mappingContext));
new MappingR2dbcConverter(new BasicRelationalConverter(mappingContext)));
this.jdbc = createJdbcTemplate(createDataSource());