Noam Slomianko has uploaded a new change for review.

Change subject: engine: Dao test for cluster policy
......................................................................

engine: Dao test for cluster policy

Added / Updated dao test for VdsGroupDAO, ClusterPolicyDao
PolicyUnitDao

Change-Id: I59dd6b97ce5ce75eb307d58e6dac99e35f43381f
Signed-off-by: Noam Slomianko <[email protected]>
---
A 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
A 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java
M 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
5 files changed, 306 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/52/16452/1

diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java
new file mode 100644
index 0000000..cd4314e
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/ClusterPolicyDoaTest.java
@@ -0,0 +1,92 @@
+package org.ovirt.engine.core.dao;
+
+import static org.junit.Assert.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import org.junit.Test;
+
+import org.ovirt.engine.core.common.scheduling.ClusterPolicy;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.scheduling.ClusterPolicyDao;
+
+public class ClusterPolicyDoaTest extends BaseDAOTestCase {
+
+    private static final int NUMBER_OF_CLUSTER_POLICIES = 2;
+
+    private ClusterPolicyDao dao;
+    private ClusterPolicy existingPolicy;
+    private ClusterPolicy dummyPolicy;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+        dao = dbFacade.getClusterPolicyDao();
+        existingPolicy = 
dao.get(FixturesTool.CLUSTER_POLICY_EVEN_DISTRIBUTION);
+        createDummyPolicy();
+    };
+
+    @Test
+    public void testGet() {
+        ClusterPolicy result = dao.get(existingPolicy.getId());
+
+        assertTrue(result.equals(existingPolicy));
+    }
+
+    @Test
+    public void testGetNegative() {
+        ClusterPolicy result = dao.get(Guid.newGuid());
+
+        assertNull(result);
+    }
+
+    @Test
+    public void testGetAll() {
+        List<ClusterPolicy> result = dao.getAll();
+
+        assertNotNull(result);
+        assertEquals(result.size(), NUMBER_OF_CLUSTER_POLICIES);
+    }
+
+    @Test
+    public void testSave() {
+        dao.save(dummyPolicy);
+        ClusterPolicy result = dao.get(dummyPolicy.getId());
+        assertTrue(result.equals(dummyPolicy));
+        dao.remove(dummyPolicy.getId());
+    }
+
+    @Test
+    public void testUpdate() {
+        dao.save(dummyPolicy);
+        dummyPolicy.setName("Altered dummy policy");
+        dao.update(dummyPolicy);
+        ClusterPolicy result = dao.get(dummyPolicy.getId());
+        assertTrue(result.equals(dummyPolicy));
+    }
+
+    @Test
+    public void testRemove() {
+        dao.save(dummyPolicy);
+        dao.remove(dummyPolicy.getId());
+        ClusterPolicy result = dao.get(dummyPolicy.getId());
+        assertNull(result);
+
+    }
+
+    private void createDummyPolicy() {
+        dummyPolicy = new ClusterPolicy();
+        dummyPolicy.setId(Guid.newGuid());
+        dummyPolicy.setName("Dummy policy");
+        dummyPolicy.setDescription("Dummy policy description");
+        dummyPolicy.setLocked(false);
+        ArrayList<Guid> filters = new ArrayList<Guid>();
+        filters.add(FixturesTool.POLICY_UNIT_MIGRATION);
+        dummyPolicy.setFilters(filters);
+        HashMap<Guid, Integer> filterPositionMap = new HashMap<Guid, 
Integer>();
+        filterPositionMap.put(FixturesTool.POLICY_UNIT_MIGRATION, 1);
+        dummyPolicy.setFilterPositionMap(filterPositionMap);
+    }
+}
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
index f507e73..0195c09 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/FixturesTool.java
@@ -393,4 +393,9 @@
     public static final Guid PROVIDER_ID = new 
Guid("1115c1c6-cb15-4832-b2a4-023770607111");
 
     public static final ProviderType PROVIDER_TYPE = 
ProviderType.OPENSTACK_NETWORK;
+    /**
+     * Cluster Policy
+     */
+    public static final Guid CLUSTER_POLICY_EVEN_DISTRIBUTION = new 
Guid("20d25257-b4bd-4589-92a6-c4c5c5d3fd1a");
+    public static final Guid POLICY_UNIT_MIGRATION = new 
Guid("84e6ddee-ab0d-42dd-82f0-c297779db5e5");
 }
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java
new file mode 100644
index 0000000..67d8e3f
--- /dev/null
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/PolicyUnitDaoTest.java
@@ -0,0 +1,84 @@
+package org.ovirt.engine.core.dao;
+
+import static org.junit.Assert.*;
+
+import java.util.List;
+
+import org.junit.Test;
+import org.ovirt.engine.core.common.scheduling.PolicyUnit;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.scheduling.PolicyUnitDao;
+
+public class PolicyUnitDaoTest extends BaseDAOTestCase {
+
+    private static final int NUMBER_OF_POLICY_UNITS = 2;
+    PolicyUnitDao dao;
+    PolicyUnit existingPolicyUnit;
+    PolicyUnit dummyPolicyUnit;
+
+    @Override
+    public void setUp() throws Exception {
+        super.setUp();
+
+        dao = dbFacade.getPolicyUnitDao();
+        existingPolicyUnit = dao.get(FixturesTool.POLICY_UNIT_MIGRATION);
+        createDummyPolicyUnit();
+    };
+
+    @Test
+    public void testGet() {
+        // TODO Auto-generated method stub
+        PolicyUnit result = dao.get(FixturesTool.POLICY_UNIT_MIGRATION);
+        assertTrue(result.equals(existingPolicyUnit));
+    }
+
+    @Test
+    public void testGetNegative() {
+        PolicyUnit result = dao.get(Guid.newGuid());
+        assertNull(result);
+    }
+
+    @Test
+    public void testGetAll() {
+        List<PolicyUnit> result = dao.getAll();
+
+        assertNotNull(result);
+        assertEquals(result.size(), NUMBER_OF_POLICY_UNITS);
+    }
+
+    @Test
+    public void testSave() {
+        dao.save(dummyPolicyUnit);
+        PolicyUnit result = dao.get(dummyPolicyUnit.getId());
+        assertTrue(result.equals(dummyPolicyUnit));
+        dao.remove(dummyPolicyUnit.getId());
+    }
+
+    @Test
+    public void testUpdate() {
+        dao.save(dummyPolicyUnit);
+        dummyPolicyUnit.setName("Altered dummpy policy unit");
+        dao.update(dummyPolicyUnit);
+        PolicyUnit result = dao.get(dummyPolicyUnit.getId());
+        assertTrue(result.equals(dummyPolicyUnit));
+        dao.remove(dummyPolicyUnit.getId());
+
+    }
+
+    @Test
+    public void testRemove() {
+        dao.save(dummyPolicyUnit);
+        dao.remove(dummyPolicyUnit.getId());
+        PolicyUnit result = dao.get(dummyPolicyUnit.getId());
+        assertNull(result);
+
+    }
+
+    private void createDummyPolicyUnit() {
+        dummyPolicyUnit = new PolicyUnit();
+        dummyPolicyUnit.setId(Guid.newGuid());
+        dummyPolicyUnit.setName("Dummy policy unit");
+        dummyPolicyUnit.setBalanceImplemeted(true);
+    }
+
+}
diff --git 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java
 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java
index b15f267..01a3717 100644
--- 
a/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java
+++ 
b/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VdsGroupDAOTest.java
@@ -27,6 +27,7 @@
     private VDSGroup newGroup;
     private VDSGroup groupWithNoRunningVms;
     private StoragePool storagePool;
+    private Guid clusterPolicyId;
 
     @Override
     public void setUp() throws Exception {
@@ -44,6 +45,7 @@
 
         existingVdsGroup = dao.get(existingVds.getVdsGroupId());
         groupWithNoRunningVms = 
dbFacade.getVdsGroupDao().get(FixturesTool.VDS_GROUP_NO_RUNNING_VMS);
+        clusterPolicyId = existingVdsGroup.getClusterPolicyId();
 
         newGroup = new VDSGroup();
         newGroup.setName("New VDS Group");
@@ -367,6 +369,28 @@
     }
 
     /**
+     * Test that the correct vds_group is fetched when querying by cluster 
policy id
+     */
+    @Test
+    public void testGetClusterByClusterPolicyId() {
+        List<VDSGroup> result = 
dao.getClustersByClusterPolicyId(FixturesTool.CLUSTER_POLICY_EVEN_DISTRIBUTION);
+
+        assertTrue(result.contains(FixturesTool.VDS_GROUP_RHEL6_ISCSI));
+        assertTrue(result.contains(FixturesTool.VDS_GROUP_NO_RUNNING_VMS));
+        assertTrue(result.contains(FixturesTool.VDS_GROUP_RHEL6_NFS));
+    }
+
+    /**
+     * Test that no vds_group is fetched when querying by wrong cluster policy 
id
+     */
+    @Test
+    public void testGetClusterByClusterPolicyIdNegative() {
+        List<VDSGroup> result = 
dao.getClustersByClusterPolicyId(Guid.newGuid());
+
+        assertTrue(result == null || result.size() == 0);
+    }
+
+    /**
      * Asserts the result from {@link VdsGroupDAO#getAll()} is correct without 
filtering
      *
      * @param result
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 475a2c5..fa72b67 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -521,6 +521,8 @@
         <column>tunnel_migration</column>
         <column>emulated_machine</column>
         <column>trusted_service</column>
+        <column>cluster_policy_id</column>
+        <column>cluster_policy_custom_properties</column>
         <row>
             <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value>
             <value>rhel6.iscsi</value>
@@ -542,6 +544,8 @@
             <value>false</value>
             <null/>
             <value>false</value>
+            <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80"}</value>
         </row>
         <row>
             <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d2</value>
@@ -564,6 +568,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>false</value>
+            <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80"}</value>
         </row>
         <row>
             <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d3</value>
@@ -586,6 +592,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>false</value>
+            <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80"}</value>
         </row>
         <row>
             <value>0e57070e-2469-4b38-84a2-f111aaabd49d</value>
@@ -608,6 +616,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>true</value>
+            <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80"}</value>
         </row>
         <row>
             <value>eba797fb-8e3b-4777-b63c-92e7a5957d7c</value>
@@ -630,6 +640,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>true</value>
+            <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80", "LowUtilization" : "20"}</value>
         </row>
                <row>
             <value>eba797fb-8e3b-4777-b63c-92e7a5957d7d</value>
@@ -652,6 +664,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>false</value>
+            <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80", "LowUtilization" : "20"}</value>
         </row>
         <row>
             <value>eba797fb-8e3b-4777-b63c-92e7a5957d7e</value>
@@ -674,6 +688,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>true</value>
+            <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80", "LowUtilization" : "20"}</value>
         </row>
         <row>
             <value>eba797fb-8e3b-4777-b63c-92e7a5957d7f</value>
@@ -696,6 +712,8 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>true</value>
+            <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80", "LowUtilization" : "20"}</value>
         </row>
         <row>
             <value>ae956031-6be2-43d6-bb8f-5191c9253314</value>
@@ -718,8 +736,91 @@
             <value>false</value>
             <value>pc-1.0</value>
             <value>false</value>
+            <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+            <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" : 
"80", "LowUtilization" : "20"}</value>
         </row>
     </table>
+    
+    <table name="cluster_policies">
+       <column>id</column>
+       <column>name</column>
+       <column>description</column>
+       <column>is_locked</column>
+       <column>is_default</column>
+       <column>custom_properties</column>
+       <row>
+               <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+               <value>even distribution</value>
+               <value>desc</value>
+               <value>false</value>
+               <value>true</value>
+               <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" 
: "80"}</value>
+       </row>
+       <row>
+               <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+               <value>power saving</value>
+               <value>desc</value>
+               <value>false</value>
+               <value>true</value>
+               <value>{"CpuOverCommitDurationMinutes" : "2", "HighUtilization" 
: "80", "LowUtilization" : "20"}</value>
+       </row>
+    </table>
+    
+    <table name="policy units">
+       <column>id</column>
+       <column>name</column>
+       <column>is_internal</column>
+       <column>has_filter</column>
+       <column>has_function</column>
+       <column>has_balance</column>
+               <column>>custom_properties_regex</column>
+               <row>
+                       <value>84e6ddee-ab0d-42dd-82f0-c297779db5e5</value>
+                       <value>Migration</value>
+                       <value>true</value>
+                       <value>true</value>
+                       <value>false</value>
+                       <value>false</value>
+                       <null/>
+               </row>
+               <row>
+                       <value>a267eddb-768d-45fd-9dbb-6ebcee343508</value>
+                       <value>MigrationDomain</value>
+                       <value>true</value>
+                       <value>true</value>
+                       <value>false</value>
+                       <value>false</value>
+                       <null/>
+               </row>
+    </table>
+    
+    <table name="cluster_policy_units">
+       <column>cluster_policy_id</column>
+       <column>policy_unit_id</column>
+       <column>filter_selected</column>
+       <column>filter_sequence</column>
+       <column>function_selected</column>
+       <column>factor</column>
+       <column>balance_selected</column>
+       <row>
+               <value>20d25257-b4bd-4589-92a6-c4c5c5d3fd1a</value>
+               <value>84e6ddee-ab0d-42dd-82f0-c297779db5e5</value>
+               <value>true</value>
+               <value>1</value>
+               <value>false</value>
+               <value>0</value>
+               <value>false</value>
+       </row>
+       <row>
+               <value>5a2b0939-7d46-4b73-a469-e9c2c7fc6a53</value>
+               <value>a267eddb-768d-45fd-9dbb-6ebcee343508</value>
+               <value>true</value>
+               <value>1</value>
+               <value>false</value>
+               <value>0</value>
+               <value>false</value>
+       </row>
+    </table>
 
     <table name="providers">
         <column>id</column>


-- 
To view, visit http://gerrit.ovirt.org/16452
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I59dd6b97ce5ce75eb307d58e6dac99e35f43381f
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Noam Slomianko <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to