- 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 TestClusterSingletonServiceInstance();
- clusterSingletonService2 = new TestClusterSingletonServiceInstance();
-
- 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());
- }
-
- /**
- * 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());
- }
-
- /**
- * 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());