Fixes JIRA issues SGF-230 and SGF-233 involving the persistence on a Async Event Queue or Gateway Sender when a logical Disk Store name has been specified, or the disk-synchronous attribute has been set, requiring persistence to be enabled when all the user wanted was overflow.
This commit is contained in:
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertSame;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Matchers.notNull;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -45,6 +46,7 @@ import com.gemstone.gemfire.cache.util.Gateway;
|
||||
* @see org.springframework.data.gemfire.TestUtils
|
||||
* @see org.springframework.data.gemfire.wan.AsyncEventQueueFactoryBean
|
||||
* @see com.gemstone.gemfire.cache.Cache
|
||||
* @see com.gemstone.gemfire.cache.asyncqueue.AsyncEventListener
|
||||
* @see com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueue
|
||||
* @see com.gemstone.gemfire.cache.asyncqueue.AsyncEventQueueFactory
|
||||
* @since 1.3.3
|
||||
@@ -90,6 +92,27 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
if (dispatcherThreads != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDispatcherThreads(eq(dispatcherThreads));
|
||||
}
|
||||
|
||||
String diskStoreReference = TestUtils.readField("diskStoreReference", factoryBean);
|
||||
|
||||
if (diskStoreReference != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDiskStoreName(eq(diskStoreReference));
|
||||
}
|
||||
|
||||
Boolean diskSynchronous = TestUtils.readField("diskSynchronous", factoryBean);
|
||||
|
||||
if (diskSynchronous != null) {
|
||||
verify(mockAsyncEventQueueFactory).setDiskSynchronous(eq(diskSynchronous));
|
||||
}
|
||||
|
||||
Boolean persistent = TestUtils.readField("persistent", factoryBean);
|
||||
|
||||
if (persistent != null) {
|
||||
verify(mockAsyncEventQueueFactory).setPersistent(eq(persistent));
|
||||
}
|
||||
else {
|
||||
verify(mockAsyncEventQueueFactory, never()).setPersistent(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -262,4 +285,45 @@ public class AsyncEventQueueFactoryBeanTest {
|
||||
assertEquals("789", eventQueue.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAsyncEventQueueWithOverflowDiskStoreNoPersistence() throws Exception {
|
||||
AsyncEventQueueFactory mockAsyncEventQueueFactory = createMockAsyncEventQueueFactory("123abc");
|
||||
|
||||
AsyncEventQueueFactoryBean factoryBean = new AsyncEventQueueFactoryBean(
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("123abc");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setDiskStoreRef("queueOverflowDiskStore");
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.doInit();
|
||||
|
||||
verifyExpectations(mockAsyncEventQueueFactory, factoryBean);
|
||||
|
||||
AsyncEventQueue evenQueue = factoryBean.getObject();
|
||||
|
||||
assertNotNull(evenQueue);
|
||||
assertEquals("123abc", evenQueue.getId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAsyncEventQueueWithDiskSynchronousSetPersistenceUnset() throws Exception {
|
||||
AsyncEventQueueFactory mockAsyncEventQueueFactory = createMockAsyncEventQueueFactory("12345");
|
||||
|
||||
AsyncEventQueueFactoryBean factoryBean = new AsyncEventQueueFactoryBean(
|
||||
createMockCacheWithAsyncEventQueueInfrastructure(mockAsyncEventQueueFactory));
|
||||
|
||||
factoryBean.setName("12345");
|
||||
factoryBean.setAsyncEventListener(createMockAsyncEventListener());
|
||||
factoryBean.setDiskSynchronous(true);
|
||||
factoryBean.doInit();
|
||||
|
||||
verifyExpectations(mockAsyncEventQueueFactory, factoryBean);
|
||||
|
||||
AsyncEventQueue evenQueue = factoryBean.getObject();
|
||||
|
||||
assertNotNull(evenQueue);
|
||||
assertEquals("12345", evenQueue.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@ import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.mockito.Matchers.eq;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
@@ -83,6 +84,27 @@ public class GatewaySenderFactoryBeanTest {
|
||||
if (dispatcherThreads != null) {
|
||||
verify(mockGatewaySenderFactory).setDispatcherThreads(eq(dispatcherThreads));
|
||||
}
|
||||
|
||||
String diskStoreReference = TestUtils.readField("diskStoreReference", factoryBean);
|
||||
|
||||
if (diskStoreReference != null) {
|
||||
verify(mockGatewaySenderFactory).setDiskStoreName(eq(diskStoreReference));
|
||||
}
|
||||
|
||||
Boolean diskSynchronous = TestUtils.readField("diskSynchronous", factoryBean);
|
||||
|
||||
if (diskSynchronous != null) {
|
||||
verify(mockGatewaySenderFactory).setDiskSynchronous(eq(diskSynchronous));
|
||||
}
|
||||
|
||||
Boolean persistent = TestUtils.readField("persistent", factoryBean);
|
||||
|
||||
if (persistent != null) {
|
||||
verify(mockGatewaySenderFactory).setPersistenceEnabled(eq(persistent));
|
||||
}
|
||||
else {
|
||||
verify(mockGatewaySenderFactory, never()).setPersistenceEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -193,4 +215,47 @@ public class GatewaySenderFactoryBeanTest {
|
||||
assertEquals(42, gatewaySender.getRemoteDSId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGatewaySenderWithOverflowDiskStoreNoPersistence() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g6", 51);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g6");
|
||||
factoryBean.setRemoteDistributedSystemId(51);
|
||||
factoryBean.setPersistent(false);
|
||||
factoryBean.setDiskStoreRef("queueOverflowDiskStore");
|
||||
factoryBean.doInit();
|
||||
|
||||
verifyExpectations(factoryBean, mockGatewaySenderFactory);
|
||||
|
||||
GatewaySender gatewaySender = factoryBean.getObject();
|
||||
|
||||
assertNotNull(gatewaySender);
|
||||
assertEquals("g6", gatewaySender.getId());
|
||||
assertEquals(51, gatewaySender.getRemoteDSId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGatewaySenderWithDiskSynchronousSetPersistenceUnset() throws Exception {
|
||||
GatewaySenderFactory mockGatewaySenderFactory = createMockGatewaySenderFactory("g7", 51);
|
||||
|
||||
GatewaySenderFactoryBean factoryBean = new GatewaySenderFactoryBean(
|
||||
createMockCacheWithGatewayInfrastructure(mockGatewaySenderFactory));
|
||||
|
||||
factoryBean.setName("g7");
|
||||
factoryBean.setRemoteDistributedSystemId(51);
|
||||
factoryBean.setDiskSynchronous(true);
|
||||
factoryBean.doInit();
|
||||
|
||||
verifyExpectations(factoryBean, mockGatewaySenderFactory);
|
||||
|
||||
GatewaySender gatewaySender = factoryBean.getObject();
|
||||
|
||||
assertNotNull(gatewaySender);
|
||||
assertEquals("g7", gatewaySender.getId());
|
||||
assertEquals(51, gatewaySender.getRemoteDSId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user