X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=singleton-service%2Fmdsal-singleton-dom-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fsingleton%2Fdom%2Fimpl%2FAbstractEOSClusterSingletonServiceProviderTest.java;fp=singleton-service%2Fmdsal-singleton-dom-impl%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fsingleton%2Fdom%2Fimpl%2FAbstractEOSClusterSingletonServiceProviderTest.java;h=0000000000000000000000000000000000000000;hb=3ea5c72d92876e02e47f01827f3f8ac8d4fd09fb;hp=bf49570e8229d2ebfea80e9141d16681434c5972;hpb=56c28b25b30222ade6dde8655779f565bb99a4f5;p=mdsal.git diff --git a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/AbstractEOSClusterSingletonServiceProviderTest.java b/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/AbstractEOSClusterSingletonServiceProviderTest.java deleted file mode 100644 index bf49570e82..0000000000 --- a/singleton-service/mdsal-singleton-dom-impl/src/test/java/org/opendaylight/mdsal/singleton/dom/impl/AbstractEOSClusterSingletonServiceProviderTest.java +++ /dev/null @@ -1,501 +0,0 @@ -/* - * Copyright (c) 2017 Pantheon Technologies, s.r.o. and others. All rights reserved. - * - * This program and the accompanying materials are made available under the - * 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.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertThrows; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.doThrow; -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.REMOTE_OWNERSHIP_CHANGED; -import static org.opendaylight.mdsal.eos.common.api.EntityOwnershipStateChange.REMOTE_OWNERSHIP_LOST_NO_OWNER; -import static org.opendaylight.mdsal.singleton.dom.impl.EOSClusterSingletonServiceProvider.CLOSE_SERVICE_ENTITY_TYPE; -import static org.opendaylight.mdsal.singleton.dom.impl.EOSClusterSingletonServiceProvider.SERVICE_ENTITY_TYPE; - -import com.google.common.util.concurrent.Futures; -import com.google.common.util.concurrent.ListenableFuture; -import org.eclipse.jdt.annotation.NonNull; -import org.junit.Before; -import org.junit.Test; -import org.mockito.Mock; -import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException; -import org.opendaylight.mdsal.eos.dom.api.DOMEntity; -import org.opendaylight.mdsal.eos.dom.api.DOMEntityOwnershipService; -import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonService; -import org.opendaylight.mdsal.singleton.common.api.ServiceGroupIdentifier; -import org.opendaylight.yangtools.concepts.Registration; - -/** - * Abstract {@link EOSClusterSingletonServiceProvider} testing substrate. - */ -abstract class AbstractEOSClusterSingletonServiceProviderTest { - /** - * 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, - } - - static class TestClusterSingletonService implements ClusterSingletonService { - private TestClusterSingletonServiceState serviceState = TestClusterSingletonServiceState.INITIALIZED; - - @Override - public final ServiceGroupIdentifier getIdentifier() { - return SERVICE_ID; - } - - @Override - public final void instantiateServiceInstance() { - serviceState = TestClusterSingletonServiceState.STARTED; - } - - final TestClusterSingletonServiceState getServiceState() { - return serviceState; - } - - @Override - public ListenableFuture closeServiceInstance() { - serviceState = TestClusterSingletonServiceState.DESTROYED; - return Futures.immediateFuture(null); - } - } - - private static final @NonNull String SERVICE_NAME = "testServiceName"; - private static final @NonNull ServiceGroupIdentifier SERVICE_ID = new ServiceGroupIdentifier(SERVICE_NAME); - static final @NonNull DOMEntity ENTITY = new DOMEntity(SERVICE_ENTITY_TYPE, SERVICE_NAME); - static final @NonNull DOMEntity DOUBLE_ENTITY = new DOMEntity(CLOSE_SERVICE_ENTITY_TYPE, SERVICE_NAME); - - @Mock - public DOMEntityOwnershipService mockEos; - @Mock - public Registration mockEntityCandReg; - @Mock - public Registration mockDoubleEntityCandReg; - @Mock - public Registration mockEosEntityListReg; - @Mock - public Registration mockEosDoubleEntityListReg; - - EOSClusterSingletonServiceProvider clusterSingletonServiceProvider; - TestClusterSingletonService clusterSingletonService; - TestClusterSingletonService clusterSingletonService2; - - @Before - public void setup() throws Exception { - 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(EOSClusterSingletonServiceProvider.class)); - doReturn(mockEosDoubleEntityListReg).when(mockEos).registerListener(eq(CLOSE_SERVICE_ENTITY_TYPE), - any(EOSClusterSingletonServiceProvider.class)); - doReturn(mockEntityCandReg).when(mockEos).registerCandidate(ENTITY); - doReturn(mockDoubleEntityCandReg).when(mockEos).registerCandidate(DOUBLE_ENTITY); - - clusterSingletonServiceProvider = new EOSClusterSingletonServiceProvider(mockEos); - verify(mockEos).registerListener(SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider); - verify(mockEos).registerListener(CLOSE_SERVICE_ENTITY_TYPE, clusterSingletonServiceProvider); - - clusterSingletonService = instantiateService(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - clusterSingletonService2 = instantiateService(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - } - - TestClusterSingletonService instantiateService() { - return new TestClusterSingletonService(); - } - - /** - * Test checks NullPointer for null {@link DOMEntityOwnershipService} input value. - */ - @Test - public void initializationClusterSingletonServiceProviderNullInputTest() { - assertThrows(NullPointerException.class, () -> new EOSClusterSingletonServiceProvider(null)); - } - - /** - * Test GoldPath for close {@link EOSClusterSingletonServiceProvider}. - * - * @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. - */ - @Test - public void makeEntityClusterSingletonServiceProviderTest() { - assertEquals(ENTITY, EOSClusterSingletonServiceProvider.createEntity(SERVICE_ENTITY_TYPE, SERVICE_ID)); - assertEquals(DOUBLE_ENTITY, - EOSClusterSingletonServiceProvider.createEntity(CLOSE_SERVICE_ENTITY_TYPE, SERVICE_ID)); - } - - /** - * Test parser ServiceIdentifier from Entity. - */ - @Test - public void getIdentifierClusterSingletonServiceProviderTest() { - assertEquals(SERVICE_NAME, EOSClusterSingletonServiceProvider.getServiceIdentifierFromEntity(ENTITY)); - assertEquals(SERVICE_NAME, EOSClusterSingletonServiceProvider.getServiceIdentifierFromEntity(DOUBLE_ENTITY)); - } - - /** - * Test GoldPath for initialization {@link ClusterSingletonService}. - */ - @Test - public void initializationClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for initialization with init ownership result SLAVE {@link ClusterSingletonService}. - */ - @Test - public void slaveInitClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_CHANGED, false); - verify(mockEos, never()).registerCandidate(DOUBLE_ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for initialization with init ownership result SLAVE, but NO-MASTER {@link ClusterSingletonService}. - */ - @Test - public void slaveInitNoMasterClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_LOST_NO_OWNER, false); - verify(mockEos, never()).registerCandidate(DOUBLE_ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void masterInitClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - verify(mockEos).registerCandidate(DOUBLE_ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void masterInitSlaveDoubleCandidateClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - verify(mockEos).registerCandidate(DOUBLE_ENTITY); - clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, REMOTE_OWNERSHIP_CHANGED, false); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void takeLeadershipClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - 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()); - } - - /** - * Test GoldPath for initialization with init ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void masterInitClusterSingletonServiceTwoServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - verify(mockEos).registerCandidate(DOUBLE_ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - } - - /** - * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void takeLeadershipClusterSingletonServiceTwoAddDuringWaitPhaseServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - verify(mockEos).registerCandidate(DOUBLE_ENTITY); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - } - - /** - * Test checks CandidateAlreadyRegisteredException processing in initialization phase. - */ - @Test - public void initializationClusterSingletonServiceCandidateAlreadyRegistredTest() throws Exception { - doThrow(CandidateAlreadyRegisteredException.class).when(mockEos).registerCandidate(ENTITY); - assertThrows(RuntimeException.class, - () -> clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService)); - } - - /** - * Test GoldPath for lostLeadership during tryToTakeLeadership with ownership result MASTER - * {@link ClusterSingletonService}. - */ - @Test - public void lostLeadershipDuringTryToTakeLeadershipClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - 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(ENTITY, LOCAL_OWNERSHIP_LOST_NEW_OWNER, false); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test GoldPath for lostLeadership with ownership result MASTER-TO-SLAVE {@link ClusterSingletonService}. - */ - @Test - public void lostLeadershipClusterSingletonServiceTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - 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_LOST_NEW_OWNER, false); - assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState()); - } - - /** - * Test checks inJeopardy Cluster Node state for Slave Instance. - */ - @Test - public void inJeopardySlaveTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_CHANGED, false); - verify(mockEos, never()).registerCandidate(DOUBLE_ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_LOST_NO_OWNER, true); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg, never()).close(); - verify(mockDoubleEntityCandReg, never()).close(); - } - - /** - * Test GoldPath for takeLeadership with ownership result MASTER {@link ClusterSingletonService}. - */ - @Test - public void takeLeadershipClusterSingletonServiceTowServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - 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()); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - } - - /** - * Test checks close processing for {@link ServiceRegistration}. - */ - @Test - public void closeClusterSingletonServiceRegistrationNoRoleTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - reg.close(); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test checks close processing for {@link ServiceRegistration}. - */ - @Test - public void closeClusterSingletonServiceRegistrationNoRoleTwoServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - reg.close(); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg, never()).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - } - - /** - * Test checks close processing for {@link ServiceRegistration}. - */ - @Test - public void closeClusterSingletonServiceRegistrationSlaveTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - verify(mockEos).registerCandidate(ENTITY); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_CHANGED, false); - reg.close(); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - } - - /** - * Test checks close processing for {@link ServiceRegistration}. - */ - @Test - public void closeClusterSingletonServiceRegistrationSlaveTwoServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - verify(mockEos).registerCandidate(ENTITY); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, REMOTE_OWNERSHIP_CHANGED, false); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - reg.close(); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg, never()).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - } - - /** - * Test checks close processing for {@link ServiceRegistration}. - */ - @Test - public void closeClusterSingletonServiceRegistrationMasterTwoServicesTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.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()); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - reg.close(); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg, never()).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.DESTROYED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - } - - /** - * Test checks validation Error processing for SLAVE-TO-MASTER entity Candidate role change. - */ - @Test - public void tryToTakeLeaderForClosedServiceRegistrationTest() throws Exception { - final var reg = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService); - assertNotNull(reg); - final var reg2 = clusterSingletonServiceProvider.registerClusterSingletonService(clusterSingletonService2); - assertNotNull(reg2); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService2.getServiceState()); - verify(mockEos).registerCandidate(ENTITY); - reg.close(); - clusterSingletonServiceProvider.ownershipChanged(ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - verify(mockEos).registerCandidate(DOUBLE_ENTITY); - clusterSingletonServiceProvider.ownershipChanged(DOUBLE_ENTITY, LOCAL_OWNERSHIP_GRANTED, false); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - verify(mockEosEntityListReg, never()).close(); - verify(mockEosDoubleEntityListReg, never()).close(); - verify(mockEntityCandReg, never()).close(); - verify(mockDoubleEntityCandReg, never()).close(); - assertEquals(TestClusterSingletonServiceState.INITIALIZED, clusterSingletonService.getServiceState()); - assertEquals(TestClusterSingletonServiceState.STARTED, clusterSingletonService2.getServiceState()); - } -}