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

Reply via email to