diff --git a/pom.xml b/pom.xml
index 989e5e2..37b4df0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -31,6 +31,7 @@
5.1.47
1.0.6
0.8.0.RC1
+ 0.8.0.RC2
7.1.2.jre8-preview
Arabba-RC2
1.0.3
@@ -235,6 +236,13 @@
test
+
+ io.r2dbc
+ r2dbc-spi-test
+ ${r2dbc-spi-test.version}
+ test
+
+
diff --git a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
index 49ce781..4e6b08c 100644
--- a/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
+++ b/src/main/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializer.java
@@ -104,7 +104,7 @@ public class ConnectionFactoryInitializer implements InitializingBean, Disposabl
Assert.state(this.connectionFactory != null, "ConnectionFactory must be set");
if (this.enabled && populator != null) {
- DatabasePopulatorUtils.execute(populator, this.connectionFactory);
+ DatabasePopulatorUtils.execute(populator, this.connectionFactory).block();
}
}
}
diff --git a/src/test/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializerUnitTests.java b/src/test/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializerUnitTests.java
new file mode 100644
index 0000000..2567679
--- /dev/null
+++ b/src/test/java/org/springframework/data/r2dbc/connectionfactory/init/ConnectionFactoryInitializerUnitTests.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.springframework.data.r2dbc.connectionfactory.init;
+
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
+
+import io.r2dbc.spi.test.MockConnection;
+import io.r2dbc.spi.test.MockConnectionFactory;
+import reactor.core.publisher.Mono;
+
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import org.junit.Test;
+
+/**
+ * Unit tests for {@link ConnectionFactoryInitializer}.
+ *
+ * @author Mark Paluch
+ */
+public class ConnectionFactoryInitializerUnitTests {
+
+ AtomicBoolean called = new AtomicBoolean();
+ DatabasePopulator populator = mock(DatabasePopulator.class);
+ MockConnection connection = MockConnection.builder().build();
+ MockConnectionFactory connectionFactory = MockConnectionFactory.builder().connection(connection).build();
+
+ @Test // gh-216
+ public void shouldInitializeConnectionFactory() {
+
+ when(populator.populate(any())).thenReturn(Mono. empty().doOnSubscribe(subscription -> called.set(true)));
+
+ ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
+ initializer.setConnectionFactory(connectionFactory);
+ initializer.setDatabasePopulator(populator);
+
+ initializer.afterPropertiesSet();
+
+ assertThat(called).isTrue();
+ }
+
+ @Test // gh-216
+ public void shouldCleanConnectionFactory() {
+
+ when(populator.populate(any())).thenReturn(Mono. empty().doOnSubscribe(subscription -> called.set(true)));
+
+ ConnectionFactoryInitializer initializer = new ConnectionFactoryInitializer();
+ initializer.setConnectionFactory(connectionFactory);
+ initializer.setDatabaseCleaner(populator);
+
+ initializer.afterPropertiesSet();
+ initializer.destroy();
+
+ assertThat(called).isTrue();
+ }
+}