Yevgeny Zaspitsky has uploaded a new change for review. Change subject: engine: Add ManagementNetworkUtil class ......................................................................
engine: Add ManagementNetworkUtil class Add ManagementNetworkUtil class + its test. Change-Id: I4117f9e97e721c847f5192e1ab724c8d231ce4f3 Signed-off-by: Yevgeny Zaspitsky <[email protected]> --- A backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilTest.java 2 files changed, 198 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/32992/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java new file mode 100644 index 0000000..1d0b9aa --- /dev/null +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtil.java @@ -0,0 +1,70 @@ +package org.ovirt.engine.core.bll.network.cluster; + +import java.util.List; + +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; +import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacadeLocator; +import org.ovirt.engine.core.dao.network.NetworkClusterDao; +import org.ovirt.engine.core.dao.network.NetworkDao; +import org.ovirt.engine.core.utils.linq.LinqUtils; +import org.ovirt.engine.core.utils.linq.Predicate; + +public final class ManagementNetworkUtil { + + /** + * The method retrieves the management network for the given cluster. + * + * @param clusterId + * the given cluster id + * @return {@link Network} that is defined as the management one in the given cluster + */ + public Network getManagementNetwork(Guid clusterId) { + return getNetworkDao().getManagementNetwork(clusterId); + } + + /** + * The method checks if the given network is defined as the management network for any cluster. + * + * @param networkId + * the given network id + * @return true if exists a cluster where the network is defined as the management one, + * false otherwise + */ + public boolean isManagementNetwork(Guid networkId) { + final List<NetworkCluster> networkClusters = getNetworkClusterDao().getAllForNetwork(networkId); + final NetworkCluster managementNetworkCluster = + LinqUtils.firstOrNull(networkClusters, new Predicate<NetworkCluster>() { + @Override + public boolean eval(NetworkCluster networkCluster) { + return networkCluster.isManagement(); + } + }); + return managementNetworkCluster != null; + } + + /** + * The method checks if the given network is defined as the management network for the given cluster cluster. + * + * @param networkId + * the given network id + * @param clusterId + * the given cluster id + * @return true if the network is defined as the management one for the given cluster, + * false otherwise + */ + public boolean isManagementNetwork(Guid networkId, Guid clusterId) { + final NetworkCluster networkCluster = getNetworkClusterDao().get(new NetworkClusterId(clusterId, networkId)); + return networkCluster != null && networkCluster.isManagement(); + } + + private NetworkClusterDao getNetworkClusterDao() { + return DbFacadeLocator.getDbFacade().getNetworkClusterDao(); + } + + private NetworkDao getNetworkDao() { + return DbFacadeLocator.getDbFacade().getNetworkDao(); + } +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilTest.java new file mode 100644 index 0000000..95b24a5 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/network/cluster/ManagementNetworkUtilTest.java @@ -0,0 +1,128 @@ +package org.ovirt.engine.core.bll.network.cluster; + +import java.util.Collections; +import java.util.UUID; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Captor; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; +import org.ovirt.engine.core.common.businessentities.network.Network; +import org.ovirt.engine.core.common.businessentities.network.NetworkCluster; +import org.ovirt.engine.core.common.businessentities.network.NetworkClusterId; +import org.ovirt.engine.core.compat.Guid; +import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dal.dbbroker.DbFacadeLocator; +import org.ovirt.engine.core.dao.network.NetworkClusterDao; +import org.ovirt.engine.core.dao.network.NetworkDao; + +@RunWith(MockitoJUnitRunner.class) +public class ManagementNetworkUtilTest { + + private static final Guid TEST_CLUSTER_ID = new Guid(UUID.randomUUID()); + private static final Guid TEST_NETWORK_ID = new Guid(UUID.randomUUID()); + + private ManagementNetworkUtil underTest; + + @Mock + private DbFacade mockDbFacade; + @Mock + private NetworkDao mockNetworkDao; + @Mock + private NetworkClusterDao mockNetworkClusterDao; + + @Mock + private Network mockNetwork; + @Mock + private NetworkCluster mockNetworkCluster; + + @Captor + private ArgumentCaptor<NetworkClusterId> networkClusterIdCaptor; + + @Before + public void setUp() throws Exception { + Mockito.when(mockDbFacade.getNetworkDao()).thenReturn(mockNetworkDao); + Mockito.when(mockDbFacade.getNetworkClusterDao()).thenReturn(mockNetworkClusterDao); + + DbFacadeLocator.setDbFacade(mockDbFacade); + + underTest = new ManagementNetworkUtil(); + } + + /** + * Test method for {@link ManagementNetworkUtil#getManagementNetwork(Guid)} . + */ + @Test + public void testGetManagementNetwork() { + Mockito.when(mockNetworkDao.getManagementNetwork(TEST_CLUSTER_ID)).thenReturn(mockNetwork); + + final Network actual = underTest.getManagementNetwork(TEST_CLUSTER_ID); + + Assert.assertSame(mockNetwork, actual); + + Mockito.verify(mockNetworkDao).getManagementNetwork(TEST_CLUSTER_ID); + } + + /** + * Test method for {@link ManagementNetworkUtil#isManagementNetwork(Guid)} . + */ + @Test + public void testIsManagementNetworkInAClusterPositive() throws Exception { + testIsManagementNetworkInAClusterCommon(true); + } + + /** + * Test method for {@link ManagementNetworkUtil#isManagementNetwork(Guid)} . + */ + @Test + public void testIsManagementNetworkInAClusterNegative() throws Exception { + testIsManagementNetworkInAClusterCommon(false); + } + + private void testIsManagementNetworkInAClusterCommon(boolean expectedResult) { + Mockito.when(mockNetworkCluster.isManagement()).thenReturn(expectedResult); + Mockito.when(mockNetworkClusterDao.getAllForNetwork(TEST_NETWORK_ID)) + .thenReturn(Collections.singletonList(mockNetworkCluster)); + + final boolean actual = underTest.isManagementNetwork(TEST_NETWORK_ID); + + Assert.assertEquals(expectedResult, actual); + + Mockito.verify(mockNetworkClusterDao).getAllForNetwork(TEST_NETWORK_ID); + } + + /** + * Test method for {@link ManagementNetworkUtil#isManagementNetwork(Guid, Guid)} . + */ + @Test + public void testIsManagementNetworkInGivenClusterPositive() throws Exception { + testIsManagementNetworkInGivenClusterCommon(true); + } + + /** + * Test method for {@link ManagementNetworkUtil#isManagementNetwork(Guid, Guid)} . + */ + @Test + public void testIsManagementNetworkInGivenClusterNegative() throws Exception { + testIsManagementNetworkInGivenClusterCommon(false); + } + + private void testIsManagementNetworkInGivenClusterCommon(boolean expectedResult) { + Mockito.when(mockNetworkClusterDao.get(Mockito.any(NetworkClusterId.class))).thenReturn(mockNetworkCluster); + Mockito.when(mockNetworkCluster.isManagement()).thenReturn(expectedResult); + + final boolean actual = underTest.isManagementNetwork(TEST_NETWORK_ID, TEST_CLUSTER_ID); + + Assert.assertEquals(expectedResult, actual); + + Mockito.verify(mockNetworkClusterDao).get(networkClusterIdCaptor.capture()); + final NetworkClusterId networkClusterIdCaptured = networkClusterIdCaptor.getValue(); + Assert.assertEquals(TEST_CLUSTER_ID, networkClusterIdCaptured.getClusterId()); + Assert.assertEquals(TEST_NETWORK_ID, networkClusterIdCaptured.getNetworkId()); + } +} -- To view, visit http://gerrit.ovirt.org/32992 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I4117f9e97e721c847f5192e1ab724c8d231ce4f3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Yevgeny Zaspitsky <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
