DATACASS-298 - Polishing.

Extends date range in license headers. Apply formatting rules. Create BeanDefinitionTestUtils and simplify tests. Add ticket references.

Original pull request: #66.
This commit is contained in:
Mark Paluch
2016-06-20 09:12:09 +02:00
parent 3d9835d99a
commit 56c46f9460
9 changed files with 342 additions and 222 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2013-2014 the original author or authors.
* Copyright 2013-2016 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.

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2013-2014 the original author or authors.
* Copyright 2013-2016 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.

View File

@@ -18,9 +18,9 @@ package org.springframework.cassandra.config;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.any;
import static org.mockito.Mockito.anyInt;
import static org.mockito.Mockito.*;
import static org.mockito.Mockito.same;
import java.util.concurrent.Executor;
@@ -28,7 +28,6 @@ import java.util.concurrent.Executor;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InOrder;
import org.mockito.Mock;
import org.mockito.Spy;
import org.mockito.invocation.InvocationOnMock;
@@ -44,18 +43,14 @@ import com.datastax.driver.core.PoolingOptions;
* @author Sumit Kumar
* @author David Webb
* @author John Blum
* @see org.springframework.cassandra.config.PoolingOptionsFactoryBean
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-176</a>
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@RunWith(MockitoJUnitRunner.class)
public class PoolingOptionsFactoryBeanUnitTests {
@Mock
private Executor mockExecutor;
@Spy
private PoolingOptions poolingOptionsSpy;
@Mock Executor mockExecutor;
@Spy PoolingOptions poolingOptionsSpy;
private PoolingOptionsFactoryBean poolingOptionsFactoryBean;
@@ -85,6 +80,7 @@ public class PoolingOptionsFactoryBeanUnitTests {
*/
@Test
public void setAndGetFactoryBeanProperties() {
poolingOptionsFactoryBean.setHeartbeatIntervalSeconds(15);
poolingOptionsFactoryBean.setIdleTimeoutSeconds(120);
poolingOptionsFactoryBean.setInitializationExecutor(mockExecutor);
@@ -117,8 +113,10 @@ public class PoolingOptionsFactoryBeanUnitTests {
*/
@Test
public void afterPropertiesSetInitializesLocalPoolingOptions() throws Exception {
PoolingOptionsFactoryBean poolingOptionsFactoryBean = new PoolingOptionsFactoryBean() {
@Override PoolingOptions newPoolingOptions() {
@Override
PoolingOptions newPoolingOptions() {
poolingOptionsSpy.setNewConnectionThreshold(HostDistance.LOCAL, 1);
return poolingOptionsSpy;
}
@@ -140,14 +138,14 @@ public class PoolingOptionsFactoryBeanUnitTests {
assertThat(poolingOptionsFactoryBean.getObject(), is(sameInstance(poolingOptionsSpy)));
assertThat(poolingOptionsFactoryBean.getObjectType(), is(equalTo((Class) poolingOptionsSpy.getClass())));
verify(poolingOptionsSpy, times(1)).setHeartbeatIntervalSeconds(eq(60));
verify(poolingOptionsSpy, times(1)).setIdleTimeoutSeconds(eq(300));
verify(poolingOptionsSpy, times(1)).setInitializationExecutor(eq(mockExecutor));
verify(poolingOptionsSpy, times(1)).setPoolTimeoutMillis(eq(180));
verify(poolingOptionsSpy, times(1)).setCoreConnectionsPerHost(eq(HostDistance.LOCAL), eq(10));
verify(poolingOptionsSpy, times(1)).setMaxConnectionsPerHost(eq(HostDistance.LOCAL), eq(100));
verify(poolingOptionsSpy, times(1)).setMaxRequestsPerConnection(eq(HostDistance.LOCAL), eq(50));
verify(poolingOptionsSpy, times(1)).setNewConnectionThreshold(eq(HostDistance.LOCAL), eq(5));
verify(poolingOptionsSpy).setHeartbeatIntervalSeconds(eq(60));
verify(poolingOptionsSpy).setIdleTimeoutSeconds(eq(300));
verify(poolingOptionsSpy).setInitializationExecutor(eq(mockExecutor));
verify(poolingOptionsSpy).setPoolTimeoutMillis(eq(180));
verify(poolingOptionsSpy).setCoreConnectionsPerHost(eq(HostDistance.LOCAL), eq(10));
verify(poolingOptionsSpy).setMaxConnectionsPerHost(eq(HostDistance.LOCAL), eq(100));
verify(poolingOptionsSpy).setMaxRequestsPerConnection(eq(HostDistance.LOCAL), eq(50));
verify(poolingOptionsSpy).setNewConnectionThreshold(eq(HostDistance.LOCAL), eq(5));
verify(poolingOptionsSpy, never()).setCoreConnectionsPerHost(eq(HostDistance.REMOTE), anyInt());
verify(poolingOptionsSpy, never()).setMaxConnectionsPerHost(eq(HostDistance.REMOTE), anyInt());
verify(poolingOptionsSpy, never()).setMaxRequestsPerConnection(eq(HostDistance.REMOTE), anyInt());
@@ -159,8 +157,10 @@ public class PoolingOptionsFactoryBeanUnitTests {
*/
@Test
public void afterPropertiesSetInitializesRemotePoolingOptions() throws Exception {
PoolingOptionsFactoryBean poolingOptionsFactoryBean = new PoolingOptionsFactoryBean() {
@Override PoolingOptions newPoolingOptions() {
@Override
PoolingOptions newPoolingOptions() {
poolingOptionsSpy.setNewConnectionThreshold(HostDistance.REMOTE, 10);
return poolingOptionsSpy;
}
@@ -182,13 +182,13 @@ public class PoolingOptionsFactoryBeanUnitTests {
assertThat(poolingOptionsFactoryBean.getObject(), is(sameInstance(poolingOptionsSpy)));
assertThat(poolingOptionsFactoryBean.getObjectType(), is(equalTo((Class) poolingOptionsSpy.getClass())));
verify(poolingOptionsSpy, times(1)).setHeartbeatIntervalSeconds(eq(30));
verify(poolingOptionsSpy, times(1)).setIdleTimeoutSeconds(eq(120));
verify(poolingOptionsSpy, times(1)).setInitializationExecutor(eq(mockExecutor));
verify(poolingOptionsSpy, times(1)).setPoolTimeoutMillis(eq(120));
verify(poolingOptionsSpy, times(1)).setCoreConnectionsPerHost(eq(HostDistance.REMOTE), eq(5));
verify(poolingOptionsSpy, times(1)).setMaxConnectionsPerHost(eq(HostDistance.REMOTE), eq(50));
verify(poolingOptionsSpy, times(1)).setMaxRequestsPerConnection(eq(HostDistance.REMOTE), eq(20));
verify(poolingOptionsSpy).setHeartbeatIntervalSeconds(eq(30));
verify(poolingOptionsSpy).setIdleTimeoutSeconds(eq(120));
verify(poolingOptionsSpy).setInitializationExecutor(eq(mockExecutor));
verify(poolingOptionsSpy).setPoolTimeoutMillis(eq(120));
verify(poolingOptionsSpy).setCoreConnectionsPerHost(eq(HostDistance.REMOTE), eq(5));
verify(poolingOptionsSpy).setMaxConnectionsPerHost(eq(HostDistance.REMOTE), eq(50));
verify(poolingOptionsSpy).setMaxRequestsPerConnection(eq(HostDistance.REMOTE), eq(20));
verify(poolingOptionsSpy, never()).setCoreConnectionsPerHost(eq(HostDistance.LOCAL), anyInt());
verify(poolingOptionsSpy, never()).setMaxConnectionsPerHost(eq(HostDistance.LOCAL), anyInt());
verify(poolingOptionsSpy, never()).setMaxRequestsPerConnection(eq(HostDistance.LOCAL), anyInt());
@@ -197,19 +197,20 @@ public class PoolingOptionsFactoryBeanUnitTests {
}
/**
* This particular test case is technically an integration test since it uses an actual instance of
* a DataStax Java driver class type... {@link PoolingOptions}!
*
* The max values should be set before setting core values. Otherwise the core values will be compared with the
* default max values which is 8. Same for other min-max properties pairs. This test checks the same.
* This particular test case is technically an integration test since it uses an actual instance of a DataStax Java
* driver class type... {@link PoolingOptions}! The max values should be set before setting core values. Otherwise the
* core values will be compared with the default max values which is 8. Same for other min-max properties pairs. This
* test checks the same.
*
* @throws Exception Any unhandled scenarios will result in a test failure.
* @see <a href="https://jira.spring.io/browse/DATACASS-176">DATACASS-176</a>
*/
@Test
public void afterPropertiesSetProperlySetsPoolingOptionsMaxBeforeMinProperties() throws Exception {
poolingOptionsFactoryBean = new PoolingOptionsFactoryBean() {
@Override PoolingOptions newPoolingOptions() {
@Override
PoolingOptions newPoolingOptions() {
return spy(super.newPoolingOptions());
}
};
@@ -239,20 +240,22 @@ public class PoolingOptionsFactoryBeanUnitTests {
assertThat(poolingOptions.getMaxRequestsPerConnection(HostDistance.REMOTE), is(equalTo(127)));
assertThat(poolingOptions.getNewConnectionThreshold(HostDistance.REMOTE), is(equalTo(111)));
InOrder inOrder = inOrder(poolingOptions);
inOrder.verify(poolingOptions, times(1)).setMaxConnectionsPerHost(eq(HostDistance.LOCAL), eq(200));
inOrder.verify(poolingOptions, times(1)).setCoreConnectionsPerHost(eq(HostDistance.LOCAL), eq(100));
inOrder.verify(poolingOptions, times(1)).setMaxRequestsPerConnection(eq(HostDistance.LOCAL), eq(99));
inOrder.verify(poolingOptions, times(1)).setNewConnectionThreshold(eq(HostDistance.LOCAL), eq(97));
inOrder.verify(poolingOptions, times(1)).setMaxConnectionsPerHost(eq(HostDistance.REMOTE), eq(210));
inOrder.verify(poolingOptions, times(1)).setCoreConnectionsPerHost(eq(HostDistance.REMOTE), eq(110));
inOrder.verify(poolingOptions, times(1)).setMaxRequestsPerConnection(eq(HostDistance.REMOTE), eq(127));
inOrder.verify(poolingOptions, times(1)).setNewConnectionThreshold(eq(HostDistance.REMOTE), eq(111));
verify(poolingOptions).setMaxConnectionsPerHost(eq(HostDistance.LOCAL), eq(200));
verify(poolingOptions).setCoreConnectionsPerHost(eq(HostDistance.LOCAL), eq(100));
verify(poolingOptions).setMaxRequestsPerConnection(eq(HostDistance.LOCAL), eq(99));
verify(poolingOptions).setNewConnectionThreshold(eq(HostDistance.LOCAL), eq(97));
verify(poolingOptions).setMaxConnectionsPerHost(eq(HostDistance.REMOTE), eq(210));
verify(poolingOptions).setCoreConnectionsPerHost(eq(HostDistance.REMOTE), eq(110));
verify(poolingOptions).setMaxRequestsPerConnection(eq(HostDistance.REMOTE), eq(127));
verify(poolingOptions).setNewConnectionThreshold(eq(HostDistance.REMOTE), eq(111));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-176">DATACASS-176</a>
*/
@Test
public void newLocalHostDistancePoolingOptionsReturnsLocalHostDistancePoolingOptionsFactoryBeanSettings() {
poolingOptionsFactoryBean.setLocalCoreConnections(50);
poolingOptionsFactoryBean.setLocalMaxConnections(500);
poolingOptionsFactoryBean.setLocalMaxSimultaneousRequests(1000);
@@ -262,8 +265,8 @@ public class PoolingOptionsFactoryBeanUnitTests {
poolingOptionsFactoryBean.setRemoteMaxSimultaneousRequests(400);
poolingOptionsFactoryBean.setRemoteMinSimultaneousRequests(40);
PoolingOptionsFactoryBean.HostDistancePoolingOptions poolingOptions =
poolingOptionsFactoryBean.newLocalHostDistancePoolingOptions();
PoolingOptionsFactoryBean.HostDistancePoolingOptions poolingOptions = poolingOptionsFactoryBean
.newLocalHostDistancePoolingOptions();
assertThat(poolingOptions.getHostDistance(), is(equalTo(HostDistance.LOCAL)));
assertThat(poolingOptions.getCoreConnectionsPerHost(), is(equalTo(50)));
@@ -272,8 +275,12 @@ public class PoolingOptionsFactoryBeanUnitTests {
assertThat(poolingOptions.getNewConnectionThreshold(), is(equalTo(100)));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-176">DATACASS-176</a>
*/
@Test
public void newLocalHostDistancePoolingOptionsReturnsRemoteHostDistancePoolingOptionsFactoryBeanSettings() {
poolingOptionsFactoryBean.setLocalCoreConnections(50);
poolingOptionsFactoryBean.setLocalMaxConnections(500);
poolingOptionsFactoryBean.setLocalMaxSimultaneousRequests(1000);
@@ -283,8 +290,8 @@ public class PoolingOptionsFactoryBeanUnitTests {
poolingOptionsFactoryBean.setRemoteMaxSimultaneousRequests(400);
poolingOptionsFactoryBean.setRemoteMinSimultaneousRequests(40);
PoolingOptionsFactoryBean.HostDistancePoolingOptions poolingOptions =
poolingOptionsFactoryBean.newRemoteHostDistancePoolingOptions();
PoolingOptionsFactoryBean.HostDistancePoolingOptions poolingOptions = poolingOptionsFactoryBean
.newRemoteHostDistancePoolingOptions();
assertThat(poolingOptions.getHostDistance(), is(equalTo(HostDistance.REMOTE)));
assertThat(poolingOptions.getCoreConnectionsPerHost(), is(equalTo(20)));
@@ -293,55 +300,61 @@ public class PoolingOptionsFactoryBeanUnitTests {
assertThat(poolingOptions.getNewConnectionThreshold(), is(equalTo(40)));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-176">DATACASS-176</a>
*/
@Test
public void configureLocalHostDistancePoolingOptionsCallsConfigureWithExpectedInstance() {
final PoolingOptionsFactoryBean.HostDistancePoolingOptions mockHostDistancePoolingOptions = mock(
PoolingOptionsFactoryBean.HostDistancePoolingOptions.class);
when(mockHostDistancePoolingOptions.configure(any(PoolingOptions.class))).thenAnswer(
new Answer<PoolingOptions>() {
@Override
public PoolingOptions answer(InvocationOnMock invocationOnMock) throws Throwable {
return invocationOnMock.getArgumentAt(0, PoolingOptions.class);
}
final PoolingOptionsFactoryBean.HostDistancePoolingOptions mockHostDistancePoolingOptions = mock(
PoolingOptionsFactoryBean.HostDistancePoolingOptions.class);
when(mockHostDistancePoolingOptions.configure(any(PoolingOptions.class))).thenAnswer(new Answer<PoolingOptions>() {
@Override
public PoolingOptions answer(InvocationOnMock invocationOnMock) throws Throwable {
return invocationOnMock.getArgumentAt(0, PoolingOptions.class);
}
);
});
poolingOptionsFactoryBean = new PoolingOptionsFactoryBean() {
@Override protected HostDistancePoolingOptions newLocalHostDistancePoolingOptions() {
@Override
protected HostDistancePoolingOptions newLocalHostDistancePoolingOptions() {
return mockHostDistancePoolingOptions;
}
};
assertThat(poolingOptionsFactoryBean.configureLocalHostDistancePoolingOptions(poolingOptionsSpy),
is(sameInstance(poolingOptionsSpy)));
is(sameInstance(poolingOptionsSpy)));
verify(mockHostDistancePoolingOptions, times(1)).configure(same(poolingOptionsSpy));
verify(mockHostDistancePoolingOptions).configure(same(poolingOptionsSpy));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-176">DATACASS-176</a>
*/
@Test
public void configureRemoteHostDistancePoolingOptionsCallsConfigureWithExpectedInstance() {
final PoolingOptionsFactoryBean.HostDistancePoolingOptions mockHostDistancePoolingOptions = mock(
PoolingOptionsFactoryBean.HostDistancePoolingOptions.class);
when(mockHostDistancePoolingOptions.configure(any(PoolingOptions.class))).thenAnswer(
new Answer<PoolingOptions>() {
@Override
public PoolingOptions answer(InvocationOnMock invocationOnMock) throws Throwable {
return invocationOnMock.getArgumentAt(0, PoolingOptions.class);
}
final PoolingOptionsFactoryBean.HostDistancePoolingOptions mockHostDistancePoolingOptions = mock(
PoolingOptionsFactoryBean.HostDistancePoolingOptions.class);
when(mockHostDistancePoolingOptions.configure(any(PoolingOptions.class))).thenAnswer(new Answer<PoolingOptions>() {
@Override
public PoolingOptions answer(InvocationOnMock invocationOnMock) throws Throwable {
return invocationOnMock.getArgumentAt(0, PoolingOptions.class);
}
);
});
poolingOptionsFactoryBean = new PoolingOptionsFactoryBean() {
@Override protected HostDistancePoolingOptions newRemoteHostDistancePoolingOptions() {
@Override
protected HostDistancePoolingOptions newRemoteHostDistancePoolingOptions() {
return mockHostDistancePoolingOptions;
}
};
assertThat(poolingOptionsFactoryBean.configureRemoteHostDistancePoolingOptions(poolingOptionsSpy),
is(sameInstance(poolingOptionsSpy)));
is(sameInstance(poolingOptionsSpy)));
verify(mockHostDistancePoolingOptions, times(1)).configure(same(poolingOptionsSpy));
verify(mockHostDistancePoolingOptions).configure(same(poolingOptionsSpy));
}
}

View File

@@ -18,14 +18,13 @@ package org.springframework.cassandra.config.xml;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.mockito.Mockito.*;
import static org.springframework.cassandra.support.BeanDefinitionTestUtils.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.parsing.PassThroughSourceExtractor;
import org.springframework.beans.factory.support.AbstractBeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -42,77 +41,45 @@ import org.w3c.dom.NodeList;
* Test suite of Unit tests testing the contract and functionality of the {@link CassandraCqlClusterParser}.
*
* @author John Blum
* @see org.springframework.cassandra.config.xml.CassandraCqlClusterParser
* @since 1.5.0
*/
// TODO add more tests!
@RunWith(MockitoJUnitRunner.class)
public class CassandraCqlClusterParserUnitTests {
@Mock
private Element mockElement;
@Mock Element mockElement;
private CassandraCqlClusterParser parser = new CassandraCqlClusterParser();
@SuppressWarnings("unchecked")
protected <T> T getPropertyValue(BeanDefinition beanDefinition, String propertyName) {
PropertyValue propertyValue = beanDefinition.getPropertyValues().getPropertyValue(propertyName);
return (T) (propertyValue != null ? propertyValue.getValue() : null);
}
protected String getPropertyValueAsString(BeanDefinition beanDefinition, String propertyName) {
Object value = getPropertyValue(beanDefinition, propertyName);
return (value instanceof RuntimeBeanReference ? ((RuntimeBeanReference) value).getBeanName()
: (value != null ? String.valueOf(value) : null));
}
protected BeanDefinitionParserDelegate mockBeanDefinitionParserDelegate(XmlReaderContext xmlReaderContext) {
return new BeanDefinitionParserDelegate(xmlReaderContext);
}
protected NodeList mockNodeList(Element... childElements) {
NodeList mockNodeList = mock(NodeList.class);
when(mockNodeList.getLength()).thenReturn(childElements.length);
for (int index = 0; index < childElements.length; index++) {
when(mockNodeList.item(eq(index))).thenReturn(childElements[index]);
}
return mockNodeList;
}
protected ParserContext mockParserContext() {
return mockParserContext(null);
}
protected ParserContext mockParserContext(BeanDefinition beanDefinition) {
XmlReaderContext readerContext = mockXmlReaderContext();
return new ParserContext(readerContext, mockBeanDefinitionParserDelegate(readerContext), beanDefinition);
}
protected XmlReaderContext mockXmlReaderContext() {
return new XmlReaderContext(null, null, null, new PassThroughSourceExtractor(), null, null);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void resolveIdFromElement() {
when(mockElement.getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE))).thenReturn("test");
assertThat(parser.resolveId(mockElement, null, null), is(equalTo("test")));
verify(mockElement, times(1)).getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE));
verify(mockElement).getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void resolveIdUsingDefault() {
when(mockElement.getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE))).thenReturn("");
assertThat(parser.resolveId(mockElement, null, null), is(equalTo(DefaultCqlBeanNames.CLUSTER)));
verify(mockElement, times(1)).getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE));
verify(mockElement).getAttribute(eq(CassandraCqlClusterParser.ID_ATTRIBUTE));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseInternalCallsDoParseAndConstructsBeanDefinition() {
BeanDefinition mockContainingBeanDefinition = mock(BeanDefinition.class);
when(mockContainingBeanDefinition.getScope()).thenReturn("Singleton");
@@ -163,26 +130,30 @@ public class CassandraCqlClusterParserUnitTests {
assertThat(getPropertyValueAsString(beanDefinition, "sslEnabled"), is(equalTo("true")));
assertThat(getPropertyValueAsString(beanDefinition, "username"), is(equalTo("jonDoe")));
verify(mockContainingBeanDefinition, times(1)).getScope();
verify(mockElement, times(1)).getAttribute(eq("auth-info-provider-ref"));
verify(mockElement, times(1)).getAttribute(eq("host-state-listener-ref"));
verify(mockElement, times(1)).getAttribute(eq("latency-tracker-ref"));
verify(mockElement, times(1)).getAttribute(eq("load-balancing-policy-ref"));
verify(mockElement, times(1)).getAttribute(eq("reconnection-policy-ref"));
verify(mockElement, times(1)).getAttribute(eq("retry-policy-ref"));
verify(mockElement, times(1)).getAttribute(eq("ssl-options-ref"));
verify(mockElement, times(1)).getAttribute(eq("contact-points"));
verify(mockElement, times(1)).getAttribute(eq("compression"));
verify(mockElement, times(1)).getAttribute(eq("jmx-reporting-enabled"));
verify(mockElement, times(1)).getAttribute(eq("metrics-enabled"));
verify(mockElement, times(1)).getAttribute(eq("password"));
verify(mockElement, times(1)).getAttribute(eq("port"));
verify(mockElement, times(1)).getAttribute(eq("ssl-enabled"));
verify(mockElement, times(1)).getAttribute(eq("username"));
verify(mockContainingBeanDefinition).getScope();
verify(mockElement).getAttribute(eq("auth-info-provider-ref"));
verify(mockElement).getAttribute(eq("host-state-listener-ref"));
verify(mockElement).getAttribute(eq("latency-tracker-ref"));
verify(mockElement).getAttribute(eq("load-balancing-policy-ref"));
verify(mockElement).getAttribute(eq("reconnection-policy-ref"));
verify(mockElement).getAttribute(eq("retry-policy-ref"));
verify(mockElement).getAttribute(eq("ssl-options-ref"));
verify(mockElement).getAttribute(eq("contact-points"));
verify(mockElement).getAttribute(eq("compression"));
verify(mockElement).getAttribute(eq("jmx-reporting-enabled"));
verify(mockElement).getAttribute(eq("metrics-enabled"));
verify(mockElement).getAttribute(eq("password"));
verify(mockElement).getAttribute(eq("port"));
verify(mockElement).getAttribute(eq("ssl-enabled"));
verify(mockElement).getAttribute(eq("username"));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseChildElementsWithLocalPoolingOptions() {
Element localPoolingOptionsElement = mock(Element.class);
NodeList mockNodeList = mockNodeList(localPoolingOptionsElement);
@@ -200,7 +171,7 @@ public class CassandraCqlClusterParserUnitTests {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
parser.parseChildElements(mockElement, mockParserContext(), builder);
parser.parseChildElements(mockElement, mockParserContext(null), builder);
BeanDefinition beanDefinition = builder.getBeanDefinition();
@@ -221,20 +192,24 @@ public class CassandraCqlClusterParserUnitTests {
assertThat(getPropertyValueAsString(poolingOptionsBeanDefinition, "remoteMaxSimultaneousRequests"), is(nullValue()));
assertThat(getPropertyValueAsString(poolingOptionsBeanDefinition, "remoteMinSimultaneousRequests"), is(nullValue()));
verify(mockElement, times(1)).getChildNodes();
verify(mockElement, times(1)).getAttribute(eq("heartbeat-interval-seconds"));
verify(mockElement, times(1)).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement, times(1)).getAttribute(eq("initialization-executor-ref"));
verify(mockElement, times(1)).getAttribute(eq("pool-timeout-milliseconds"));
verify(localPoolingOptionsElement, times(1)).getLocalName();
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("core-connections"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("max-connections"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("max-simultaneous-requests"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("min-simultaneous-requests"));
verify(mockElement).getChildNodes();
verify(mockElement).getAttribute(eq("heartbeat-interval-seconds"));
verify(mockElement).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement).getAttribute(eq("initialization-executor-ref"));
verify(mockElement).getAttribute(eq("pool-timeout-milliseconds"));
verify(localPoolingOptionsElement).getLocalName();
verify(localPoolingOptionsElement).getAttribute(eq("core-connections"));
verify(localPoolingOptionsElement).getAttribute(eq("max-connections"));
verify(localPoolingOptionsElement).getAttribute(eq("max-simultaneous-requests"));
verify(localPoolingOptionsElement).getAttribute(eq("min-simultaneous-requests"));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseChildElementsWithRemotePoolingOptions() {
Element localPoolingOptionsElement = mock(Element.class);
NodeList mockNodeList = mockNodeList(localPoolingOptionsElement);
@@ -252,7 +227,7 @@ public class CassandraCqlClusterParserUnitTests {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition();
parser.parseChildElements(mockElement, mockParserContext(), builder);
parser.parseChildElements(mockElement, mockParserContext(null), builder);
BeanDefinition beanDefinition = builder.getBeanDefinition();
@@ -275,20 +250,24 @@ public class CassandraCqlClusterParserUnitTests {
assertThat(getPropertyValueAsString(poolingOptionsBeanDefinition, "remoteMinSimultaneousRequests"), is(equalTo(
"5")));
verify(mockElement, times(1)).getChildNodes();
verify(mockElement, times(1)).getAttribute(eq("heartbeat-interval-seconds"));
verify(mockElement, times(1)).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement, times(1)).getAttribute(eq("initialization-executor-ref"));
verify(mockElement, times(1)).getAttribute(eq("pool-timeout-milliseconds"));
verify(localPoolingOptionsElement, times(1)).getLocalName();
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("core-connections"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("max-connections"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("max-simultaneous-requests"));
verify(localPoolingOptionsElement, times(1)).getAttribute(eq("min-simultaneous-requests"));
verify(mockElement).getChildNodes();
verify(mockElement).getAttribute(eq("heartbeat-interval-seconds"));
verify(mockElement).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement).getAttribute(eq("initialization-executor-ref"));
verify(mockElement).getAttribute(eq("pool-timeout-milliseconds"));
verify(localPoolingOptionsElement).getLocalName();
verify(localPoolingOptionsElement).getAttribute(eq("core-connections"));
verify(localPoolingOptionsElement).getAttribute(eq("max-connections"));
verify(localPoolingOptionsElement).getAttribute(eq("max-simultaneous-requests"));
verify(localPoolingOptionsElement).getAttribute(eq("min-simultaneous-requests"));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseLocalPoolingOptionsProperlyConfiguresBeanDefinition() {
when(mockElement.getAttribute(eq("core-connections"))).thenReturn("50");
when(mockElement.getAttribute(eq("max-connections"))).thenReturn("200");
when(mockElement.getAttribute(eq("max-simultaneous-requests"))).thenReturn("50");
@@ -317,14 +296,18 @@ public class CassandraCqlClusterParserUnitTests {
verify(mockElement, never()).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement, never()).getAttribute(eq("initialization-executor-ref"));
verify(mockElement, never()).getAttribute(eq("pool-timeout-milliseconds"));
verify(mockElement, times(1)).getAttribute(eq("core-connections"));
verify(mockElement, times(1)).getAttribute(eq("max-connections"));
verify(mockElement, times(1)).getAttribute(eq("max-simultaneous-requests"));
verify(mockElement, times(1)).getAttribute(eq("min-simultaneous-requests"));
verify(mockElement).getAttribute(eq("core-connections"));
verify(mockElement).getAttribute(eq("max-connections"));
verify(mockElement).getAttribute(eq("max-simultaneous-requests"));
verify(mockElement).getAttribute(eq("min-simultaneous-requests"));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseRemotePoolingOptionsProperlyConfiguresBeanDefinition() {
when(mockElement.getAttribute(eq("core-connections"))).thenReturn("50");
when(mockElement.getAttribute(eq("max-connections"))).thenReturn("200");
when(mockElement.getAttribute(eq("max-simultaneous-requests"))).thenReturn("50");
@@ -353,21 +336,29 @@ public class CassandraCqlClusterParserUnitTests {
verify(mockElement, never()).getAttribute(eq("idle-timeout-seconds"));
verify(mockElement, never()).getAttribute(eq("initialization-executor-ref"));
verify(mockElement, never()).getAttribute(eq("pool-timeout-milliseconds"));
verify(mockElement, times(1)).getAttribute(eq("core-connections"));
verify(mockElement, times(1)).getAttribute(eq("max-connections"));
verify(mockElement, times(1)).getAttribute(eq("max-simultaneous-requests"));
verify(mockElement, times(1)).getAttribute(eq("min-simultaneous-requests"));
verify(mockElement).getAttribute(eq("core-connections"));
verify(mockElement).getAttribute(eq("max-connections"));
verify(mockElement).getAttribute(eq("max-simultaneous-requests"));
verify(mockElement).getAttribute(eq("min-simultaneous-requests"));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void parseScript() {
when(mockElement.getTextContent()).thenReturn("CREATE TABLE schema.table;");
assertThat(parser.parseScript(mockElement), is(equalTo("CREATE TABLE schema.table;")));
verify(mockElement, times(1)).getTextContent();
verify(mockElement).getTextContent();
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void newSocketOptionsBeanDefinitionIsProperlyInitialized() {
when(mockElement.getAttribute(eq("connect-timeout-millis"))).thenReturn("15000");
when(mockElement.getAttribute(eq("keep-alive"))).thenReturn("true");
when(mockElement.getAttribute(eq("read-timeout-millis"))).thenReturn("20000");
@@ -377,7 +368,7 @@ public class CassandraCqlClusterParserUnitTests {
when(mockElement.getAttribute(eq("so-linger"))).thenReturn("false");
when(mockElement.getAttribute(eq("tcp-no-delay"))).thenReturn("true");
BeanDefinition beanDefinition = parser.newSocketOptionsBeanDefinition(mockElement, mockParserContext());
BeanDefinition beanDefinition = parser.newSocketOptionsBeanDefinition(mockElement, mockParserContext(null));
assertThat(beanDefinition, is(notNullValue(BeanDefinition.class)));
assertThat(beanDefinition.getBeanClassName(), is(equalTo(SocketOptionsFactoryBean.class.getName())));
@@ -391,13 +382,32 @@ public class CassandraCqlClusterParserUnitTests {
assertThat(getPropertyValueAsString(beanDefinition, "soLinger"), is(equalTo("false")));
assertThat(getPropertyValueAsString(beanDefinition, "tcpNoDelay"), is(equalTo("true")));
verify(mockElement, times(1)).getAttribute(eq("connect-timeout-millis"));
verify(mockElement, times(1)).getAttribute(eq("keep-alive"));
verify(mockElement, times(1)).getAttribute(eq("read-timeout-millis"));
verify(mockElement, times(1)).getAttribute(eq("receive-buffer-size"));
verify(mockElement, times(1)).getAttribute(eq("reuse-address"));
verify(mockElement, times(1)).getAttribute(eq("send-buffer-size"));
verify(mockElement, times(1)).getAttribute(eq("so-linger"));
verify(mockElement, times(1)).getAttribute(eq("tcp-no-delay"));
verify(mockElement).getAttribute(eq("connect-timeout-millis"));
verify(mockElement).getAttribute(eq("keep-alive"));
verify(mockElement).getAttribute(eq("read-timeout-millis"));
verify(mockElement).getAttribute(eq("receive-buffer-size"));
verify(mockElement).getAttribute(eq("reuse-address"));
verify(mockElement).getAttribute(eq("send-buffer-size"));
verify(mockElement).getAttribute(eq("so-linger"));
verify(mockElement).getAttribute(eq("tcp-no-delay"));
}
private NodeList mockNodeList(Element... childElements) {
NodeList mockNodeList = mock(NodeList.class);
when(mockNodeList.getLength()).thenReturn(childElements.length);
for (int index = 0; index < childElements.length; index++) {
when(mockNodeList.item(eq(index))).thenReturn(childElements[index]);
}
return mockNodeList;
}
private ParserContext mockParserContext(BeanDefinition beanDefinition) {
XmlReaderContext readerContext = new XmlReaderContext(null, null, null, new PassThroughSourceExtractor(), null, null);
return new ParserContext(readerContext, new BeanDefinitionParserDelegate(readerContext), beanDefinition);
}
}

View File

@@ -18,11 +18,11 @@ package org.springframework.cassandra.config.xml;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.springframework.cassandra.support.BeanDefinitionTestUtils.*;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
@@ -31,26 +31,20 @@ import org.springframework.beans.factory.support.BeanDefinitionBuilder;
* Test suite of unit tests testing the contract and functionality of the {@link ParsingUtils} class.
*
* @author John Blum
* @see org.springframework.cassandra.config.xml.ParsingUtils
* @since 1.5.0
*/
// TODO: add more tests!
public class ParsingUtilsUnitTests {
@Rule
public ExpectedException exception = ExpectedException.none();
@SuppressWarnings("unchecked")
protected <T> T getPropertyValue(BeanDefinition beanDefinition, String propertyName) {
PropertyValue propertyValue = beanDefinition.getPropertyValues().getPropertyValue(propertyName);
return (T) (propertyValue != null ? propertyValue.getValue() : null);
}
@Rule public ExpectedException exception = ExpectedException.none();
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addOptionalReferencePropertyUsesDefault() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"referenceProperty", null, "defaultBeanReference", false, true);
"referenceProperty", null, "defaultBeanReference", false, true);
RuntimeBeanReference propertyValue = getPropertyValue(builder.getBeanDefinition(), "referenceProperty");
@@ -58,10 +52,14 @@ public class ParsingUtilsUnitTests {
assertThat(propertyValue.getBeanName(), is(equalTo("defaultBeanReference")));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addOptionalReferencePropertyWithNoValueDoesReturnsWithoutAdding() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"referenceProperty", null, null, false, false);
"referenceProperty", null, null, false, false);
BeanDefinition beanDefinition = builder.getRawBeanDefinition();
@@ -69,20 +67,28 @@ public class ParsingUtilsUnitTests {
assertThat(beanDefinition.getPropertyValues().isEmpty(), is(true));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addOptionalValuePropertyUsesDefault() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"valueProperty", null, "defaultValue", false, false);
"valueProperty", null, "defaultValue", false, false);
String propertyValue = getPropertyValue(builder.getBeanDefinition(), "valueProperty");
assertThat(propertyValue, is(equalTo("defaultValue")));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addOptionalValuePropertyWithNoValueDoesReturnsWithoutAdding() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"valueProperty", null, null, false, false);
"valueProperty", null, null, false, false);
BeanDefinition beanDefinition = builder.getRawBeanDefinition();
@@ -90,10 +96,14 @@ public class ParsingUtilsUnitTests {
assertThat(beanDefinition.getPropertyValues().isEmpty(), is(true));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addRequiredReferencePropertyIsSuccessful() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"referenceProperty", "reference", null, true, true);
"referenceProperty", "reference", null, true, true);
RuntimeBeanReference propertyValue = getPropertyValue(builder.getBeanDefinition(), "referenceProperty");
@@ -101,38 +111,54 @@ public class ParsingUtilsUnitTests {
assertThat(propertyValue.getBeanName(), is(equalTo("reference")));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addRequiredReferencePropertyWithNoReferenceFails() {
exception.expect(IllegalArgumentException.class);
exception.expectCause(is(nullValue(Throwable.class)));
exception.expectMessage("value required for property reference [referenceProperty] on class [null]");
ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(), "referenceProperty", null,
"defaultReference", true, true);
"defaultReference", true, true);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addRequiredValuePropertyIsSuccessful() {
BeanDefinitionBuilder builder = ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(),
"valueProperty", "value", null, true, false);
"valueProperty", "value", null, true, false);
String propertyValue = getPropertyValue(builder.getBeanDefinition(), "valueProperty");
assertThat(propertyValue, is(equalTo("value")));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addRequiredValuePropertyWithNoValueFails() {
exception.expect(IllegalArgumentException.class);
exception.expectCause(is(nullValue(Throwable.class)));
exception.expectMessage("value required for property [valueProperty] on class [null]");
ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(), "valueProperty", null,
"defaultValue", true, false);
ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(), "valueProperty", null, "defaultValue", true,
false);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addPropertyThrowsIllegalArgumentExceptionForNullBuilder() {
exception.expect(IllegalArgumentException.class);
exception.expectCause(is(nullValue(Throwable.class)));
exception.expectMessage("BeanDefinitionBuilder must not be null");
@@ -140,13 +166,16 @@ public class ParsingUtilsUnitTests {
ParsingUtils.addProperty(null, "propertyName", "value", "defaultValue", false, false);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void addPropertyThrowsIllegalArgumentExceptionForNullPropertyName() {
exception.expect(IllegalArgumentException.class);
exception.expectCause(is(nullValue(Throwable.class)));
exception.expectMessage("Property name must not be null");
ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(), null, "value", "defaultValue",
false, true);
ParsingUtils.addProperty(BeanDefinitionBuilder.genericBeanDefinition(), null, "value", "defaultValue", false, true);
}
}

View File

@@ -0,0 +1,70 @@
/*
* Copyright 2016 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
*
* http://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.cassandra.support;
import org.springframework.beans.PropertyValue;
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.util.Assert;
/**
* {@code BeanDefinitionTestUtils} is a collection of {@link org.springframework.beans.factory.config.BeanDefinition}
* -based utility methods for use in unit and integration testing scenarios.
*
* @author Mark Paluch
*/
public abstract class BeanDefinitionTestUtils {
/**
* Prevent instances.
*/
private BeanDefinitionTestUtils() {}
/**
* Retrieve the {@code propertyValue} from a {@link BeanDefinition} by its {@code propertyName}.
*
* @param beanDefinition must not be {@literal null}.
* @param propertyName must not be {@literal null} or empty.
* @return the property value, may be {@literal null}.
*/
@SuppressWarnings("unchecked")
public static <T> T getPropertyValue(BeanDefinition beanDefinition, String propertyName) {
Assert.notNull(beanDefinition, "BeanDefinition must not be null");
Assert.notNull(propertyName, "Property name must not be empty");
PropertyValue propertyValue = beanDefinition.getPropertyValues().getPropertyValue(propertyName);
return (T) (propertyValue != null ? propertyValue.getValue() : null);
}
/**
* Retrieve the {@code propertyValue} as {@literal String} from a {@link BeanDefinition} by its {@code propertyName}.
*
* @param beanDefinition must not be {@literal null}.
* @param propertyName must not be {@literal null} or empty.
* @return the property value, may be {@literal null}.
*/
public static String getPropertyValueAsString(BeanDefinition beanDefinition, String propertyName) {
Assert.notNull(beanDefinition, "BeanDefinition must not be null");
Assert.notNull(propertyName, "Property name must not be empty");
Object value = getPropertyValue(beanDefinition, propertyName);
return (value instanceof RuntimeBeanReference ? ((RuntimeBeanReference) value).getBeanName()
: (value != null ? String.valueOf(value) : null));
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2013-2014 the original author or authors.
* Copyright 2013-2016 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.
@@ -34,6 +34,8 @@ import com.datastax.driver.core.Session;
import com.datastax.driver.core.SocketOptions;
/**
* Integration tests for XML-based configuration using property placeholders.
*
* @author Mark Paluch
* @author John Blum
*/
@@ -43,14 +45,9 @@ import com.datastax.driver.core.SocketOptions;
public class PropertyPlaceholderNamespaceCreatingXmlConfigIntegrationTests
extends AbstractEmbeddedCassandraIntegrationTest {
@Autowired
private Cluster cassandraCluster;
@Autowired
private CqlOperations ops;
@Autowired
private Session session;
@Autowired private Cluster cassandraCluster;
@Autowired private CqlOperations ops;
@Autowired private Session session;
@Test
public void keyspaceExists() {
@@ -61,6 +58,9 @@ public class PropertyPlaceholderNamespaceCreatingXmlConfigIntegrationTests
assertNotNull(ops);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void localAndRemotePoolingOptionsWereConfiguredProperly() {
@@ -80,6 +80,9 @@ public class PropertyPlaceholderNamespaceCreatingXmlConfigIntegrationTests
assertThat(poolingOptions.getNewConnectionThreshold(HostDistance.REMOTE), is(equalTo(5)));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void socketOptionsWereConfiguredProperly() {

View File

@@ -49,15 +49,11 @@ public class XmlConfigIntegrationTests extends AbstractEmbeddedCassandraIntegrat
public static final String KEYSPACE = "xmlconfigtest";
@Rule
public KeyspaceRule keyspaceRule = new KeyspaceRule(cassandraEnvironment, KEYSPACE);
@Rule public KeyspaceRule keyspaceRule = new KeyspaceRule(cassandraEnvironment, KEYSPACE);
private ConfigurableApplicationContext applicationContext;
private Cluster cluster;
private Executor executor;
private Session session;
@Before
@@ -82,6 +78,9 @@ public class XmlConfigIntegrationTests extends AbstractEmbeddedCassandraIntegrat
IntegrationTestUtils.assertKeyspaceExists(KEYSPACE, session);
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void localAndRemotePoolingOptionsWereConfiguredProperly() {
@@ -102,6 +101,9 @@ public class XmlConfigIntegrationTests extends AbstractEmbeddedCassandraIntegrat
assertThat(poolingOptions.getNewConnectionThreshold(HostDistance.REMOTE), is(equalTo(25)));
}
/**
* @see <a href="https://jira.spring.io/browse/DATACASS-298">DATACASS-298</a>
*/
@Test
public void socketOptionsWereConfiguredProperly() {

View File

@@ -17,13 +17,6 @@
<constructor-arg index="1" value="bar" />
</bean>
<!--
<bean id="loadBalancingPolicy" class="com.datastax.driver.core.policies.DCAwareRoundRobinPolicy">
<constructor-arg name="localDc" value="${lb.policy.dcAware.localDc}"/>
<constructor-arg name="usedHostsPerRemoteDc" value="${lb.policy.dcAware.remoteHosts}"/>
</bean>
-->
<bean id="reconnectionPolicy"
class="com.datastax.driver.core.policies.ConstantReconnectionPolicy">
<constructor-arg name="constantDelayMs"