* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.mdsal.singleton.dom.impl;
-import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.eq;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.doNothing;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
+import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange.LOCAL_OWNERSHIP_GRANTED;
+import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange.LOCAL_OWNERSHIP_LOST_NEW_OWNER;
+import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange.LOCAL_OWNERSHIP_RETAINED_WITH_NO_CHANGE;
+import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange.REMOTE_OWNERSHIP_CHANGED;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;
import java.util.Timer;
import java.util.TimerTask;
import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
-import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChangeState;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntity;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipCandidateRegistration;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipChange;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipListenerRegistration;
-import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService;
import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
-import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier;
/*
* Testing {@link DOMClusterSingletonServiceProviderImpl} implementation
*/
-public final class DOMClusterSingletonServiceProviderAsyncImplTest {
-
- private static final String SERVICE_ENTITY_TYPE = "org.opendaylight.mdsal.ServiceEntityType";
- private static final String CLOSE_SERVICE_ENTITY_TYPE = "org.opendaylight.mdsal.AsyncServiceCloseEntityType";
- private static final String SERVICE_NAME = "testServiceName";
-
- @Mock
- private DOMEntityOwnershipService mockEos;
- @Mock
- private DOMEntityOwnershipCandidateRegistration mockEntityCandReg;
- @Mock
- private DOMEntityOwnershipCandidateRegistration mockDoubleEntityCandReg;
- @Mock
- private DOMEntityOwnershipListenerRegistration mockEosEntityListReg;
- @Mock
- private DOMEntityOwnershipListenerRegistration mockEosDoubleEntityListReg;
-
- private DOMClusterSingletonServiceProviderImpl clusterSingletonServiceProvider;
- private TestClusterSingletonAsyncServiceInstance clusterSingletonService;
- private TestClusterSingletonAsyncServiceInstance clusterSingletonService2;
+@RunWith(MockitoJUnitRunner.StrictStubs.class)
+public final class DOMClusterSingletonServiceProviderAsyncImplTest extends AbstractDOMClusterServiceProviderTest {
+ /*
+ * Test implementation of {@link ClusterSingletonService}
+ */
+ public static class TestClusterSingletonAsyncServiceInstance extends TestClusterSingletonService {
+ @Override
+ public ListenableFuture<Void> closeServiceInstance() {
+ super.closeServiceInstance();
- private final DOMEntity entity = new DOMEntity(SERVICE_ENTITY_TYPE, SERVICE_NAME);
- private final DOMEntity doubleEntity = new DOMEntity(CLOSE_SERVICE_ENTITY_TYPE, SERVICE_NAME);
+ final SettableFuture<Void> future = SettableFuture.create();
+ TIMER.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ future.set(null);
+ }
+ }, ASYNC_TIME_DELAY_MILLIS);
+ return future;
+ }
+ }
- protected static Timer timer;
- protected static long ASYNC_TIME_DELAY_SEC = 100L;
+ public static final long ASYNC_TIME_DELAY_MILLIS = 100L;
+ public static Timer TIMER;
@BeforeClass
public static void asyncInitTest() {
- timer = new Timer();
+ TIMER = new Timer();
}
@AfterClass
public static void cleanTest() {
- timer.cancel();
- }
-
- /**
- * Initialization functionality for every Tests in this suite.
- *
- * @throws Exception if the condition does not meet
- */
- @Before
- public void setup() throws Exception {
- MockitoAnnotations.initMocks(this);
-
- doNothing().when(mockEosEntityListReg).close();
- doNothing().when(mockEosDoubleEntityListReg).close();
- doNothing().when(mockEntityCandReg).close();
- doNothing().when(mockDoubleEntityCandReg).close();
- doReturn(mockEosEntityListReg).when(mockEos).registerListener(eq(SERVICE_ENTITY_TYPE),
- any(DOMClusterSingletonServiceProviderImpl.class));
- doReturn(mockEosDoubleEntityListReg).when(mockEos).registerListener(eq(CLOSE_SERVICE_ENTITY_TYPE),
- any(DOMClusterSingletonServiceProviderImpl.class));
- doReturn(mockEntityCandReg).when(mockEos).registerCandidate(entity);
- doReturn(mockDoubleEntityCandReg).when(mockEos).registerCandidate(doubleEntity);
-
- clusterSingletonServiceProvider = new DOMClusterSingletonServiceProviderImpl(mockEos);
- clusterSingletonServiceProvider.initializeProvider();
- verify(mockEos).registerListener(SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider);
- verify(mockEos).registerListener(CLOSE_SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider);
-
- clusterSingletonService = new TestClusterSingletonAsyncServiceInstance();
- clusterSingletonService2 = new TestClusterSingletonAsyncServiceInstance();
-
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- }
-
- /**
- * Test checks NullPointer for null {@link DOMEntityOwnershipService} input value.
- *
- * @throws Exception if the condition does not meet
- */
- @Test(expected = NullPointerException.class)
- public void initializationClusterSingletonServiceProviderNullInputTest() throws Exception {
- clusterSingletonServiceProvider = new DOMClusterSingletonServiceProviderImpl(null);
- }
-
- /**
- * Test GoldPath for close {@link DOMClusterSingletonServiceProviderImpl}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceProviderTest() throws Exception {
- verify(mockEos).registerListener(SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider);
- verify(mockEos).registerListener(CLOSE_SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider);
- clusterSingletonServiceProvider.close();
- verify(mockEosEntityListReg).close();
- verify(mockEosDoubleEntityListReg).close();
- }
-
- /**
- * Test parser ServiceIdentifier from Entity.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void makeEntityClusterSingletonServiceProviderTest() throws Exception {
- final DOMEntity testEntity = clusterSingletonServiceProvider.createEntity(SERVICE_ENTITY_TYPE, SERVICE_NAME);
- Assert.assertEquals(entity, testEntity);
- final DOMEntity testDbEn = clusterSingletonServiceProvider.createEntity(CLOSE_SERVICE_ENTITY_TYPE,
- SERVICE_NAME);
- Assert.assertEquals(doubleEntity, testDbEn);
- }
-
- /**
- * Test parser ServiceIdentifier from Entity.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void getIdentifierClusterSingletonServiceProviderTest() throws Exception {
- final String entityIdentifier = clusterSingletonServiceProvider.getServiceIdentifierFromEntity(entity);
- Assert.assertEquals(SERVICE_NAME, entityIdentifier);
- final String doubleEntityId = clusterSingletonServiceProvider.getServiceIdentifierFromEntity(doubleEntity);
- Assert.assertEquals(SERVICE_NAME, doubleEntityId);
- }
-
- /**
- * Test GoldPath for initialization {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void initializationClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test GoldPath for initialization with init ownership result SLAVE {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void slaveInitClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getInitEntityToSlave());
- verify(mockEos, never()).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test GoldPath for initialization with init ownership result SLAVE, but NO-MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void slaveInitNoMasterClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getInitEntityToSlaveNoMaster());
- verify(mockEos, never()).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void masterInitClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ TIMER.cancel();
}
- /**
- * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void masterInitSlaveDoubleCandidateClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getInitDoubleEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void takeLeadershipClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ @Override
+ TestClusterSingletonService instantiateService() {
+ return new TestClusterSingletonAsyncServiceInstance();
}
/**
public void takeDoubleLeadershipClusterSingletonServiceTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getInitDoubleEntityToSlave());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ assertNotNull(reg);
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_LOST_NEW_OWNER, false);
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
+ verify(mockDoubleEntityCandReg).close();
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, REMOTE_OWNERSHIP_CHANGED, false);
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
verify(mockEosDoubleEntityListReg, never()).close();
verify(mockEosEntityListReg, never()).close();
verify(mockEntityCandReg, never()).close();
- verify(mockDoubleEntityCandReg).close();
- }
-
- /**
- * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void masterInitClusterSingletonServiceTwoServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- }
-
- /**
- * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void takeLeadershipClusterSingletonServiceTwoAddDuringWaitPhaseServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
- }
-
- /**
- * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void takeLeadershipClusterSingletonServiceTowServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
- }
-
- /**
- * Test checks CandidateAlreadyRegisteredException processing in initialization phase.
- *
- * @throws Exception if the condition does not meet
- */
- @Test(expected = RuntimeException.class)
- public void initializationClusterSingletonServiceCandidateAlreadyRegistredTest() throws Exception {
- doThrow(CandidateAlreadyRegisteredException.class).when(mockEos).registerCandidate(entity);
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNull(reg);
- }
-
- /**
- * Test GoldPath for lostLeadership during tryToTakeLeadership with ownership result MASTER
- * {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void lostLeadershipDuringTryToTakeLeadershipClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test GoldPath for lostLeadership with ownership result MASTER-TO-SLAVE {@link ClusterSingletonService}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void lostLeadershipClusterSingletonServiceTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getInitDoubleEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
}
/**
public void unexpectedLostLeadershipDoubleCandidateTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getInitDoubleEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
+ assertNotNull(reg);
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, REMOTE_OWNERSHIP_CHANGED, false);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_LOST_NEW_OWNER, false);
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
verify(mockEosDoubleEntityListReg, never()).close();
verify(mockEntityCandReg, never()).close();
verify(mockDoubleEntityCandReg, never()).close();
reg.close();
verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, atLeastOnce()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ verify(mockEntityCandReg).close();
+ verify(mockDoubleEntityCandReg).close();
}
/**
public void inJeopardyMasterTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getInitDoubleEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToJeopardy());
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, never()).close();
- verify(mockDoubleEntityCandReg).close();
- }
-
- /**
- * Test checks inJeopardy Cluster Node state for Slave Instance.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void inJeopardySlaveTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getInitEntityToSlave());
- verify(mockEos, never()).registerCandidate(doubleEntity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToJeopardy());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ assertNotNull(reg);
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, REMOTE_OWNERSHIP_CHANGED, false);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_RETAINED_WITH_NO_CHANGE, true);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_RETAINED_WITH_NO_CHANGE, true);
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
verify(mockEosEntityListReg, never()).close();
verify(mockEosDoubleEntityListReg, never()).close();
verify(mockEntityCandReg, never()).close();
* @throws Exception if the condition does not meet
*/
@Test
- public void closeClusterSingletonServiceRegistrationNoRoleTest() throws Exception {
+ public void closeClusterSingletonServiceRegistrationMasterTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ assertNotNull(reg);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
reg.close();
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
verify(mockEntityCandReg).close();
verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test checks close processing for {@link ClusterSingletonServiceRegistration}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceRegistrationNoRoleTwoServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- reg.close();
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
+ verify(mockDoubleEntityCandReg).close();
verify(mockEosEntityListReg, never()).close();
verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, never()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
}
/**
* @throws Exception if the condition does not meet
*/
@Test
- public void closeClusterSingletonServiceRegistrationSlaveTest() throws Exception {
+ public void closeClusterSingletonServiceRegistrationMasterCloseWithNotificationTimesTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getInitEntityToSlave());
+ assertNotNull(reg);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
reg.close();
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
verify(mockEntityCandReg).close();
verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test checks close processing for {@link ClusterSingletonServiceRegistration}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceRegistrationSlaveTwoServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- verify(mockEos).registerCandidate(entity);
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- clusterSingletonServiceProvider.ownershipChanged(getInitEntityToSlave());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- reg.close();
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, never()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- }
-
- /**
- * Test checks close processing for {@link ClusterSingletonServiceRegistration}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceRegistrationMasterTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- reg.close();
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, atLeastOnce()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test checks close processing for {@link ClusterSingletonServiceRegistration}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceRegistrationMasterCloseWithNotificationTimesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- reg.close();
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
+ verify(mockDoubleEntityCandReg).close();
verify(mockEosEntityListReg, never()).close();
verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, atLeastOnce()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
}
/**
public void closeClusterSingletonServiceRegistrationMasterCloseCoupleTimesTest() throws Exception {
final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
.registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
+ assertNotNull(reg);
+ assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
+ verify(mockEos).registerCandidate(ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ verify(mockEos).registerCandidate(DOUBLE_ENTITY);
+ clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false);
+ assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
reg.close();
reg.close();
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- clusterSingletonServiceProvider.ownershipChanged(getEntityToSlave());
- Thread.sleep(ASYNC_TIME_DELAY_SEC * 2);
- verify(mockEntityCandReg, atLeastOnce()).close();
- verify(mockDoubleEntityCandReg, atLeastOnce()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- }
-
- /**
- * Test checks close processing for {@link ClusterSingletonServiceRegistration}.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void closeClusterSingletonServiceRegistrationMasterTwoServicesTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- verify(mockEos).registerCandidate(entity);
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
- reg.close();
- verify(mockEosEntityListReg, never()).close();
- verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, never()).close();
+ verify(mockEntityCandReg).close();
verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
- }
+ assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState());
- /**
- * Test checks validation Error processing for SLAVE-TO-MASTER entity Candidate role change.
- *
- * @throws Exception if the condition does not meet
- */
- @Test
- public void tryToTakeLeaderForClosedServiceRegistrationTest() throws Exception {
- final ClusterSingletonServiceRegistration reg = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService);
- Assert.assertNotNull(reg);
- final ClusterSingletonServiceRegistration reg2 = clusterSingletonServiceProvider
- .registerClusterSingletonService(clusterSingletonService2);
- Assert.assertNotNull(reg2);
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState());
- verify(mockEos).registerCandidate(entity);
- reg.close();
- clusterSingletonServiceProvider.ownershipChanged(getEntityToMaster());
- verify(mockEos).registerCandidate(doubleEntity);
- clusterSingletonServiceProvider.ownershipChanged(getDoubleEntityToMaster());
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
+ Thread.sleep(ASYNC_TIME_DELAY_MILLIS * 2);
verify(mockEosEntityListReg, never()).close();
verify(mockEosDoubleEntityListReg, never()).close();
- verify(mockEntityCandReg, never()).close();
- verify(mockDoubleEntityCandReg, never()).close();
- Assert.assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState());
- Assert.assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState());
- }
-
- private DOMEntityOwnershipChange getEntityToMaster() {
- return new DOMEntityOwnershipChange(entity, EntityOwnershipChangeState.from(false, true, true));
- }
-
- private DOMEntityOwnershipChange getEntityToSlave() {
- return new DOMEntityOwnershipChange(entity, EntityOwnershipChangeState.from(true, false, true));
- }
-
- private DOMEntityOwnershipChange getInitEntityToSlave() {
- return new DOMEntityOwnershipChange(entity, EntityOwnershipChangeState.from(false, false, true));
- }
-
- private DOMEntityOwnershipChange getInitEntityToSlaveNoMaster() {
- return new DOMEntityOwnershipChange(entity, EntityOwnershipChangeState.from(false, false, false));
- }
-
- private DOMEntityOwnershipChange getDoubleEntityToMaster() {
- return new DOMEntityOwnershipChange(doubleEntity, EntityOwnershipChangeState.from(false, true, true));
- }
-
- private DOMEntityOwnershipChange getInitDoubleEntityToSlave() {
- return new DOMEntityOwnershipChange(doubleEntity, EntityOwnershipChangeState.from(false, false, true));
- }
-
- private DOMEntityOwnershipChange getDoubleEntityToSlave() {
- return new DOMEntityOwnershipChange(doubleEntity, EntityOwnershipChangeState.from(true, false, true));
- }
-
- private DOMEntityOwnershipChange getEntityToJeopardy() {
- return new DOMEntityOwnershipChange(entity, EntityOwnershipChangeState.from(false, false, false), true);
- }
-
- /*
- * Base states for AbstractClusterProjectProvider
- */
- enum TestClusterSingletonServiceState {
- /*
- * State represents a correct Instantiated process
- */
- STARTED,
- /*
- * State represents a correct call abstract method instantiatingProject
- */
- INITIALIZED,
- /*
- * State represents a correct call abstract method destryingProject
- */
- DESTROYED;
- }
-
- /*
- * Test implementation of {@link ClusterSingletonService}
- */
- class TestClusterSingletonAsyncServiceInstance implements ClusterSingletonService {
-
- private final ServiceGroupIdentifier serviceId = ServiceGroupIdentifier.create(SERVICE_NAME);
- private TestClusterSingletonServiceState serviceState;
- protected SettableFuture<Void> future;
-
- TestClusterSingletonAsyncServiceInstance() {
- this.serviceState = TestClusterSingletonServiceState.INITIALIZED;
- }
-
- @Override
- public void instantiateServiceInstance() {
- this.serviceState = TestClusterSingletonServiceState.STARTED;
- }
-
- @Override
- public ListenableFuture<Void> closeServiceInstance() {
- this.serviceState = TestClusterSingletonServiceState.DESTROYED;
- future = SettableFuture.create();
- timer.schedule(new TimerTask() {
-
- @Override
- public void run() {
- future.set(null);
- }
- }, ASYNC_TIME_DELAY_SEC);
- return future;
- }
-
- public TestClusterSingletonServiceState getServiceState() {
- return serviceState;
- }
-
- @Override
- public ServiceGroupIdentifier getIdentifier() {
- return serviceId;
- }
+ verify(mockDoubleEntityCandReg).close();
}
}