Skip to content

Commit a04a3a1

Browse files
committed
add tests
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent 38a4fe6 commit a04a3a1

File tree

2 files changed

+134
-48
lines changed

2 files changed

+134
-48
lines changed

engine/schema/src/test/java/com/cloud/dc/dao/ClusterDaoImplTest.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package com.cloud.dc.dao;
1818

1919
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertNotNull;
2021
import static org.junit.Assert.assertTrue;
2122
import static org.mockito.Mockito.any;
2223
import static org.mockito.Mockito.doReturn;
@@ -36,9 +37,13 @@
3637
import org.mockito.Spy;
3738
import org.mockito.junit.MockitoJUnitRunner;
3839

40+
import com.cloud.cpu.CPU;
3941
import com.cloud.dc.ClusterVO;
42+
import com.cloud.hypervisor.Hypervisor;
43+
import com.cloud.utils.Pair;
4044
import com.cloud.utils.db.GenericSearchBuilder;
4145
import com.cloud.utils.db.SearchBuilder;
46+
import com.cloud.utils.db.SearchCriteria;
4247

4348
@RunWith(MockitoJUnitRunner.class)
4449
public class ClusterDaoImplTest {
@@ -75,4 +80,39 @@ public void testListAllIdsEmptyResult() {
7580
verify(clusterDao).customSearch(genericSearchBuilder.create(), null);
7681
assertTrue(result.isEmpty());
7782
}
83+
84+
@Test
85+
public void listDistinctHypervisorsArchAcrossClusters_WithZone() {
86+
Long zoneId = 123L;
87+
ClusterVO cluster1 = mock(ClusterVO.class);
88+
when(cluster1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.XenServer);
89+
when(cluster1.getArch()).thenReturn(CPU.CPUArch.amd64);
90+
ClusterVO cluster2 = mock(ClusterVO.class);
91+
when(cluster2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM);
92+
when(cluster2.getArch()).thenReturn(CPU.CPUArch.arm64);
93+
List<ClusterVO> dummyHosts = Arrays.asList(cluster1, cluster2);
94+
doReturn(dummyHosts).when(clusterDao).search(any(SearchCriteria.class), isNull());
95+
List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>> result = clusterDao.listDistinctHypervisorsArchAcrossClusters(zoneId);
96+
assertNotNull(result);
97+
assertEquals(2, result.size());
98+
assertEquals(Hypervisor.HypervisorType.XenServer, result.get(0).first());
99+
assertEquals(CPU.CPUArch.amd64, result.get(0).second());
100+
assertEquals(Hypervisor.HypervisorType.KVM, result.get(1).first());
101+
assertEquals(CPU.CPUArch.arm64, result.get(1).second());
102+
}
103+
104+
@Test
105+
public void listDistinctHypervisorsArchAcrossClusters_WithoutZone() {
106+
Long zoneId = null;
107+
ClusterVO cluster = mock(ClusterVO.class);
108+
when(cluster.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.VMware);
109+
when(cluster.getArch()).thenReturn(CPU.CPUArch.amd64);
110+
List<ClusterVO> dummyHosts = Collections.singletonList(cluster);
111+
doReturn(dummyHosts).when(clusterDao).search(any(SearchCriteria.class), isNull());
112+
List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>> result = clusterDao.listDistinctHypervisorsArchAcrossClusters(zoneId);
113+
assertNotNull(result);
114+
assertEquals(1, result.size());
115+
assertEquals(Hypervisor.HypervisorType.VMware, result.get(0).first());
116+
assertEquals(CPU.CPUArch.amd64, result.get(0).second());
117+
}
78118
}

engine/schema/src/test/java/com/cloud/host/dao/HostDaoImplTest.java

Lines changed: 94 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,16 @@
1616
// under the License.
1717
package com.cloud.host.dao;
1818

19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertNotNull;
21+
import static org.mockito.ArgumentMatchers.any;
22+
import static org.mockito.ArgumentMatchers.isNull;
23+
import static org.mockito.Mockito.doReturn;
24+
import static org.mockito.Mockito.mock;
25+
import static org.mockito.Mockito.when;
26+
27+
import java.util.Arrays;
28+
import java.util.Collections;
1929
import java.util.List;
2030

2131
import org.junit.Assert;
@@ -26,6 +36,7 @@
2636
import org.mockito.Spy;
2737
import org.mockito.junit.MockitoJUnitRunner;
2838

39+
import com.cloud.cpu.CPU;
2940
import com.cloud.host.Host;
3041
import com.cloud.host.HostVO;
3142
import com.cloud.host.Status;
@@ -52,10 +63,10 @@ public class HostDaoImplTest {
5263
public void testCountUpAndEnabledHostsInZone() {
5364
long testZoneId = 100L;
5465
hostDao.HostTypeCountSearch = mockSearchBuilder;
55-
Mockito.when(mockSearchBuilder.create()).thenReturn(mockSearchCriteria);
56-
Mockito.doNothing().when(mockSearchCriteria).setParameters(Mockito.anyString(), Mockito.any());
66+
when(mockSearchBuilder.create()).thenReturn(mockSearchCriteria);
67+
Mockito.doNothing().when(mockSearchCriteria).setParameters(Mockito.anyString(), any());
5768
int expected = 5;
58-
Mockito.doReturn(expected).when(hostDao).getCount(mockSearchCriteria);
69+
doReturn(expected).when(hostDao).getCount(mockSearchCriteria);
5970
Integer count = hostDao.countUpAndEnabledHostsInZone(testZoneId);
6071
Assert.assertSame(expected, count);
6172
Mockito.verify(mockSearchCriteria).setParameters("type", Host.Type.Routing);
@@ -70,30 +81,30 @@ public void testCountAllHostsAndCPUSocketsByType() {
7081
GenericDaoBase.SumCount mockSumCount = new GenericDaoBase.SumCount();
7182
mockSumCount.count = 10;
7283
mockSumCount.sum = 20;
73-
HostVO host = Mockito.mock(HostVO.class);
74-
GenericSearchBuilder<HostVO, GenericDaoBase.SumCount> sb = Mockito.mock(GenericSearchBuilder.class);
75-
Mockito.when(sb.entity()).thenReturn(host);
76-
Mockito.doReturn(sb).when(hostDao).createSearchBuilder(GenericDaoBase.SumCount.class);
77-
SearchCriteria<GenericDaoBase.SumCount> sc = Mockito.mock(SearchCriteria.class);
78-
Mockito.when(sb.create()).thenReturn(sc);
79-
Mockito.doReturn(List.of(mockSumCount)).when(hostDao).customSearch(Mockito.any(SearchCriteria.class), Mockito.any());
84+
HostVO host = mock(HostVO.class);
85+
GenericSearchBuilder<HostVO, GenericDaoBase.SumCount> sb = mock(GenericSearchBuilder.class);
86+
when(sb.entity()).thenReturn(host);
87+
doReturn(sb).when(hostDao).createSearchBuilder(GenericDaoBase.SumCount.class);
88+
SearchCriteria<GenericDaoBase.SumCount> sc = mock(SearchCriteria.class);
89+
when(sb.create()).thenReturn(sc);
90+
doReturn(List.of(mockSumCount)).when(hostDao).customSearch(any(SearchCriteria.class), any());
8091
Pair<Integer, Integer> result = hostDao.countAllHostsAndCPUSocketsByType(type);
81-
Assert.assertEquals(10, result.first().intValue());
82-
Assert.assertEquals(20, result.second().intValue());
92+
assertEquals(10, result.first().intValue());
93+
assertEquals(20, result.second().intValue());
8394
Mockito.verify(sc).setParameters("type", type);
8495
}
8596

8697
@Test
8798
public void testIsHostUp() {
8899
long testHostId = 101L;
89100
List<Status> statuses = List.of(Status.Up);
90-
HostVO host = Mockito.mock(HostVO.class);
91-
GenericSearchBuilder<HostVO, Status> sb = Mockito.mock(GenericSearchBuilder.class);
92-
Mockito.when(sb.entity()).thenReturn(host);
93-
SearchCriteria<Status> sc = Mockito.mock(SearchCriteria.class);
94-
Mockito.when(sb.create()).thenReturn(sc);
95-
Mockito.doReturn(sb).when(hostDao).createSearchBuilder(Status.class);
96-
Mockito.doReturn(statuses).when(hostDao).customSearch(Mockito.any(SearchCriteria.class), Mockito.any());
101+
HostVO host = mock(HostVO.class);
102+
GenericSearchBuilder<HostVO, Status> sb = mock(GenericSearchBuilder.class);
103+
when(sb.entity()).thenReturn(host);
104+
SearchCriteria<Status> sc = mock(SearchCriteria.class);
105+
when(sb.create()).thenReturn(sc);
106+
doReturn(sb).when(hostDao).createSearchBuilder(Status.class);
107+
doReturn(statuses).when(hostDao).customSearch(any(SearchCriteria.class), any());
97108
boolean result = hostDao.isHostUp(testHostId);
98109
Assert.assertTrue("Host should be up", result);
99110
Mockito.verify(sc).setParameters("id", testHostId);
@@ -108,17 +119,17 @@ public void testFindHostIdsByZoneClusterResourceStateTypeAndHypervisorType() {
108119
List<Host.Type> types = List.of(Host.Type.Routing);
109120
List<Hypervisor.HypervisorType> hypervisorTypes = List.of(Hypervisor.HypervisorType.KVM);
110121
List<Long> mockResults = List.of(1001L, 1002L); // Mocked result
111-
HostVO host = Mockito.mock(HostVO.class);
112-
GenericSearchBuilder<HostVO, Long> sb = Mockito.mock(GenericSearchBuilder.class);
113-
Mockito.when(sb.entity()).thenReturn(host);
114-
SearchCriteria<Long> sc = Mockito.mock(SearchCriteria.class);
115-
Mockito.when(sb.create()).thenReturn(sc);
116-
Mockito.when(sb.and()).thenReturn(sb);
117-
Mockito.doReturn(sb).when(hostDao).createSearchBuilder(Long.class);
118-
Mockito.doReturn(mockResults).when(hostDao).customSearch(Mockito.any(SearchCriteria.class), Mockito.any());
122+
HostVO host = mock(HostVO.class);
123+
GenericSearchBuilder<HostVO, Long> sb = mock(GenericSearchBuilder.class);
124+
when(sb.entity()).thenReturn(host);
125+
SearchCriteria<Long> sc = mock(SearchCriteria.class);
126+
when(sb.create()).thenReturn(sc);
127+
when(sb.and()).thenReturn(sb);
128+
doReturn(sb).when(hostDao).createSearchBuilder(Long.class);
129+
doReturn(mockResults).when(hostDao).customSearch(any(SearchCriteria.class), any());
119130
List<Long> hostIds = hostDao.findHostIdsByZoneClusterResourceStateTypeAndHypervisorType(
120131
zoneId, clusterId, resourceStates, types, hypervisorTypes);
121-
Assert.assertEquals(mockResults, hostIds);
132+
assertEquals(mockResults, hostIds);
122133
Mockito.verify(sc).setParameters("zoneId", zoneId);
123134
Mockito.verify(sc).setParameters("clusterId", clusterId);
124135
Mockito.verify(sc).setParameters("resourceState", resourceStates.toArray());
@@ -130,28 +141,28 @@ public void testFindHostIdsByZoneClusterResourceStateTypeAndHypervisorType() {
130141
public void testListDistinctHypervisorTypes() {
131142
Long zoneId = 1L;
132143
List<Hypervisor.HypervisorType> mockResults = List.of(Hypervisor.HypervisorType.KVM, Hypervisor.HypervisorType.XenServer);
133-
HostVO host = Mockito.mock(HostVO.class);
134-
GenericSearchBuilder<HostVO, Hypervisor.HypervisorType> sb = Mockito.mock(GenericSearchBuilder.class);
135-
Mockito.when(sb.entity()).thenReturn(host);
136-
SearchCriteria<Hypervisor.HypervisorType> sc = Mockito.mock(SearchCriteria.class);
137-
Mockito.when(sb.create()).thenReturn(sc);
138-
Mockito.doReturn(sb).when(hostDao).createSearchBuilder(Hypervisor.HypervisorType.class);
139-
Mockito.doReturn(mockResults).when(hostDao).customSearch(Mockito.any(SearchCriteria.class), Mockito.any());
144+
HostVO host = mock(HostVO.class);
145+
GenericSearchBuilder<HostVO, Hypervisor.HypervisorType> sb = mock(GenericSearchBuilder.class);
146+
when(sb.entity()).thenReturn(host);
147+
SearchCriteria<Hypervisor.HypervisorType> sc = mock(SearchCriteria.class);
148+
when(sb.create()).thenReturn(sc);
149+
doReturn(sb).when(hostDao).createSearchBuilder(Hypervisor.HypervisorType.class);
150+
doReturn(mockResults).when(hostDao).customSearch(any(SearchCriteria.class), any());
140151
List<Hypervisor.HypervisorType> hypervisorTypes = hostDao.listDistinctHypervisorTypes(zoneId);
141-
Assert.assertEquals(mockResults, hypervisorTypes);
152+
assertEquals(mockResults, hypervisorTypes);
142153
Mockito.verify(sc).setParameters("zoneId", zoneId);
143154
Mockito.verify(sc).setParameters("type", Host.Type.Routing);
144155
}
145156

146157
@Test
147158
public void testListByIds() {
148159
List<Long> ids = List.of(101L, 102L);
149-
List<HostVO> mockResults = List.of(Mockito.mock(HostVO.class), Mockito.mock(HostVO.class));
160+
List<HostVO> mockResults = List.of(mock(HostVO.class), mock(HostVO.class));
150161
hostDao.IdsSearch = mockSearchBuilder;
151-
Mockito.when(mockSearchBuilder.create()).thenReturn(mockSearchCriteria);
152-
Mockito.doReturn(mockResults).when(hostDao).search(Mockito.any(SearchCriteria.class), Mockito.any());
162+
when(mockSearchBuilder.create()).thenReturn(mockSearchCriteria);
163+
doReturn(mockResults).when(hostDao).search(any(SearchCriteria.class), any());
153164
List<HostVO> hosts = hostDao.listByIds(ids);
154-
Assert.assertEquals(mockResults, hosts);
165+
assertEquals(mockResults, hosts);
155166
Mockito.verify(mockSearchCriteria).setParameters("id", ids.toArray());
156167
Mockito.verify(hostDao).search(mockSearchCriteria, null);
157168
}
@@ -164,15 +175,15 @@ public void testListIdsBy() {
164175
Hypervisor.HypervisorType hypervisorType = Hypervisor.HypervisorType.KVM;
165176
Long zoneId = 1L, podId = 2L, clusterId = 3L;
166177
List<Long> mockResults = List.of(1001L, 1002L);
167-
HostVO host = Mockito.mock(HostVO.class);
168-
GenericSearchBuilder<HostVO, Long> sb = Mockito.mock(GenericSearchBuilder.class);
169-
Mockito.when(sb.entity()).thenReturn(host);
170-
SearchCriteria<Long> sc = Mockito.mock(SearchCriteria.class);
171-
Mockito.when(sb.create()).thenReturn(sc);
172-
Mockito.doReturn(sb).when(hostDao).createSearchBuilder(Long.class);
173-
Mockito.doReturn(mockResults).when(hostDao).customSearch(Mockito.any(SearchCriteria.class), Mockito.any());
178+
HostVO host = mock(HostVO.class);
179+
GenericSearchBuilder<HostVO, Long> sb = mock(GenericSearchBuilder.class);
180+
when(sb.entity()).thenReturn(host);
181+
SearchCriteria<Long> sc = mock(SearchCriteria.class);
182+
when(sb.create()).thenReturn(sc);
183+
doReturn(sb).when(hostDao).createSearchBuilder(Long.class);
184+
doReturn(mockResults).when(hostDao).customSearch(any(SearchCriteria.class), any());
174185
List<Long> hostIds = hostDao.listIdsBy(type, status, resourceState, hypervisorType, zoneId, podId, clusterId);
175-
Assert.assertEquals(mockResults, hostIds);
186+
assertEquals(mockResults, hostIds);
176187
Mockito.verify(sc).setParameters("type", type);
177188
Mockito.verify(sc).setParameters("status", status);
178189
Mockito.verify(sc).setParameters("resourceState", resourceState);
@@ -181,4 +192,39 @@ public void testListIdsBy() {
181192
Mockito.verify(sc).setParameters("podId", podId);
182193
Mockito.verify(sc).setParameters("clusterId", clusterId);
183194
}
195+
196+
@Test
197+
public void testListDistinctHypervisorArchTypes_WithZone() {
198+
Long zoneId = 123L;
199+
HostVO host1 = mock(HostVO.class);
200+
when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.XenServer);
201+
when(host1.getArch()).thenReturn(CPU.CPUArch.amd64);
202+
HostVO host2 = mock(HostVO.class);
203+
when(host2.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.KVM);
204+
when(host2.getArch()).thenReturn(CPU.CPUArch.arm64);
205+
List<HostVO> dummyHosts = Arrays.asList(host1, host2);
206+
doReturn(dummyHosts).when(hostDao).search(any(SearchCriteria.class), isNull());
207+
List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>> result = hostDao.listDistinctHypervisorArchTypes(zoneId);
208+
assertNotNull(result);
209+
assertEquals(2, result.size());
210+
assertEquals(Hypervisor.HypervisorType.XenServer, result.get(0).first());
211+
assertEquals(CPU.CPUArch.amd64, result.get(0).second());
212+
assertEquals(Hypervisor.HypervisorType.KVM, result.get(1).first());
213+
assertEquals(CPU.CPUArch.arm64, result.get(1).second());
214+
}
215+
216+
@Test
217+
public void testListDistinctHypervisorArchTypes_WithoutZone() {
218+
Long zoneId = null;
219+
HostVO host1 = mock(HostVO.class);
220+
when(host1.getHypervisorType()).thenReturn(Hypervisor.HypervisorType.VMware);
221+
when(host1.getArch()).thenReturn(CPU.CPUArch.amd64);
222+
List<HostVO> dummyHosts = Collections.singletonList(host1);
223+
doReturn(dummyHosts).when(hostDao).search(any(SearchCriteria.class), isNull());
224+
List<Pair<Hypervisor.HypervisorType, CPU.CPUArch>> result = hostDao.listDistinctHypervisorArchTypes(zoneId);
225+
assertNotNull(result);
226+
assertEquals(1, result.size());
227+
assertEquals(Hypervisor.HypervisorType.VMware, result.get(0).first());
228+
assertEquals(CPU.CPUArch.amd64, result.get(0).second());
229+
}
184230
}

0 commit comments

Comments
 (0)