#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:
Jens Schauder
2019-06-04 10:58:27 +02:00
parent e3aae619f4
commit 7372efe3e6
4 changed files with 52 additions and 53 deletions

View File

@@ -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) //

View File

@@ -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();