#98 - Polishing.
Formatting. Changed generics to avoid unchecked casting. Avoided abbreviated variable name. Simplified handling of absent keys at ConnectionFactory lookup. Original pull request: #132.
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.springframework.data.r2dbc.connectionfactory.lookup;
|
||||
|
||||
import static java.util.Collections.*;
|
||||
import static org.assertj.core.api.Assertions.*;
|
||||
|
||||
import io.r2dbc.spi.ConnectionFactory;
|
||||
@@ -22,9 +23,6 @@ import reactor.core.publisher.Mono;
|
||||
import reactor.test.StepVerifier;
|
||||
import reactor.util.context.Context;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -35,6 +33,7 @@ import org.mockito.junit.MockitoJUnitRunner;
|
||||
* Unit tests for {@link AbstractRoutingConnectionFactory}.
|
||||
*
|
||||
* @author Mark Paluch
|
||||
* @author Jens Schauder
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@@ -44,23 +43,23 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@Mock ConnectionFactory defaultConnectionFactory;
|
||||
@Mock ConnectionFactory routedConnectionFactory;
|
||||
|
||||
DummyRoutingConnectionFactory sut;
|
||||
DummyRoutingConnectionFactory connectionFactory;
|
||||
|
||||
@Before
|
||||
public void before() {
|
||||
|
||||
sut = new DummyRoutingConnectionFactory();
|
||||
sut.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
connectionFactory = new DummyRoutingConnectionFactory();
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
}
|
||||
|
||||
@Test // gh-98
|
||||
public void shouldDetermineRoutedFactory() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", routedConnectionFactory));
|
||||
sut.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "key")) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(routedConnectionFactory) //
|
||||
@@ -70,10 +69,10 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@Test // gh-98
|
||||
public void shouldFallbackToDefaultConnectionFactory() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", routedConnectionFactory));
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(defaultConnectionFactory) //
|
||||
.verifyComplete();
|
||||
@@ -82,30 +81,31 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@Test // gh-98
|
||||
public void initializationShouldFailUnsupportedLookupKey() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", new Object()));
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", new Object()));
|
||||
|
||||
assertThatThrownBy(() -> sut.afterPropertiesSet()).isInstanceOf(IllegalArgumentException.class);
|
||||
assertThatThrownBy(() -> connectionFactory.afterPropertiesSet()).isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
|
||||
@Test // gh-98
|
||||
public void initializationShouldFailUnresolvableKey() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", "value"));
|
||||
sut.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", "value"));
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
|
||||
assertThatThrownBy(() -> sut.afterPropertiesSet()).isInstanceOf(ConnectionFactoryLookupFailureException.class)
|
||||
assertThatThrownBy(() -> connectionFactory.afterPropertiesSet()) //
|
||||
.isInstanceOf(ConnectionFactoryLookupFailureException.class) //
|
||||
.hasMessageContaining("No ConnectionFactory with name 'value' registered");
|
||||
}
|
||||
|
||||
@Test // gh-98
|
||||
public void unresolvableConnectionFactoryRetrievalShouldFail() {
|
||||
|
||||
sut.setLenientFallback(false);
|
||||
sut.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", routedConnectionFactory));
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setLenientFallback(false);
|
||||
connectionFactory.setConnectionFactoryLookup(new MapConnectionFactoryLookup());
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "unknown")) //
|
||||
.as(StepVerifier::create) //
|
||||
.verifyError(IllegalStateException.class);
|
||||
@@ -114,11 +114,11 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@Test // gh-98
|
||||
public void connectionFactoryRetrievalWithUnknownLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", routedConnectionFactory));
|
||||
sut.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "unknown")) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(defaultConnectionFactory) //
|
||||
@@ -128,12 +128,12 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
@Test // gh-98
|
||||
public void connectionFactoryRetrievalWithoutLookupKeyShouldReturnDefaultConnectionFactory() {
|
||||
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("key", routedConnectionFactory));
|
||||
sut.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
sut.setLenientFallback(false);
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("key", routedConnectionFactory));
|
||||
connectionFactory.setDefaultTargetConnectionFactory(defaultConnectionFactory);
|
||||
connectionFactory.setLenientFallback(false);
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(defaultConnectionFactory) //
|
||||
.verifyComplete();
|
||||
@@ -144,11 +144,11 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
|
||||
MapConnectionFactoryLookup lookup = new MapConnectionFactoryLookup("lookup-key", routedConnectionFactory);
|
||||
|
||||
sut.setConnectionFactoryLookup(lookup);
|
||||
sut.setTargetConnectionFactories(Collections.singletonMap("my-key", "lookup-key"));
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setConnectionFactoryLookup(lookup);
|
||||
connectionFactory.setTargetConnectionFactories(singletonMap("my-key", "lookup-key"));
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "my-key")) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(routedConnectionFactory) //
|
||||
@@ -156,25 +156,24 @@ public class AbstractRoutingConnectionFactoryUnitTests {
|
||||
}
|
||||
|
||||
@Test // gh-98
|
||||
@SuppressWarnings("unchecked")
|
||||
public void shouldAllowModificationsAfterInitialization() {
|
||||
|
||||
MapConnectionFactoryLookup lookup = new MapConnectionFactoryLookup();
|
||||
|
||||
sut.setConnectionFactoryLookup(lookup);
|
||||
sut.setTargetConnectionFactories((Map) lookup.getConnectionFactories());
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.setConnectionFactoryLookup(lookup);
|
||||
connectionFactory.setTargetConnectionFactories(lookup.getConnectionFactories());
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "lookup-key")) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(defaultConnectionFactory) //
|
||||
.verifyComplete();
|
||||
|
||||
lookup.addConnectionFactory("lookup-key", routedConnectionFactory);
|
||||
sut.afterPropertiesSet();
|
||||
connectionFactory.afterPropertiesSet();
|
||||
|
||||
sut.determineTargetConnectionFactory() //
|
||||
connectionFactory.determineTargetConnectionFactory() //
|
||||
.subscriberContext(Context.of(ROUTING_KEY, "lookup-key")) //
|
||||
.as(StepVerifier::create) //
|
||||
.expectNext(routedConnectionFactory) //
|
||||
|
||||
@@ -49,6 +49,7 @@ public class BeanFactoryConnectionFactoryLookupUnitTests {
|
||||
|
||||
BeanFactoryConnectionFactoryLookup lookup = new BeanFactoryConnectionFactoryLookup();
|
||||
lookup.setBeanFactory(beanFactory);
|
||||
|
||||
ConnectionFactory connectionFactory = lookup.getConnectionFactory(CONNECTION_FACTORY_BEAN_NAME);
|
||||
|
||||
assertThat(connectionFactory).isNotNull();
|
||||
|
||||
Reference in New Issue
Block a user