Skip to content

Commit feec5b1

Browse files
committed
test1, domaindetails, capacitymanager fix
Signed-off-by: Abhishek Kumar <[email protected]>
1 parent e3cf7fd commit feec5b1

File tree

11 files changed

+694
-25
lines changed

11 files changed

+694
-25
lines changed

api/src/test/java/org/apache/cloudstack/api/command/admin/domain/ListDomainsCmdTest.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.List;
2020

21+
import org.apache.cloudstack.api.ApiConstants;
2122
import org.apache.cloudstack.api.response.DomainResponse;
2223
import org.junit.Assert;
2324
import org.junit.Test;
@@ -71,7 +72,17 @@ public void testUpdateDomainResponseWithDomains() {
7172
cmd._resourceLimitService = resourceLimitService;
7273
ReflectionTestUtils.setField(cmd, "tag", "abc");
7374
cmd.updateDomainResponse(List.of(Mockito.mock(DomainResponse.class)));
74-
Mockito.verify(resourceLimitService, Mockito.times(1)).updateTaggedResourceLimitsAndCountsForDomains(Mockito.any(), Mockito.any());
75+
Mockito.verify(resourceLimitService).updateTaggedResourceLimitsAndCountsForDomains(Mockito.any(), Mockito.any());
76+
}
77+
78+
@Test
79+
public void testUpdateDomainResponseWithDomainsMinDetails() {
80+
ListDomainsCmd cmd = new ListDomainsCmd();
81+
ReflectionTestUtils.setField(cmd, "viewDetails", List.of(ApiConstants.DomainDetails.min.toString()));
82+
cmd._resourceLimitService = resourceLimitService;
83+
ReflectionTestUtils.setField(cmd, "tag", "abc");
84+
cmd.updateDomainResponse(List.of(Mockito.mock(DomainResponse.class)));
85+
Mockito.verify(resourceLimitService, Mockito.never()).updateTaggedResourceLimitsAndCountsForDomains(Mockito.any(), Mockito.any());
7586
}
7687

7788
}

api/src/test/java/org/apache/cloudstack/api/command/user/account/ListAccountsCmdTest.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.util.List;
2020

21+
import org.apache.cloudstack.api.ApiConstants;
2122
import org.apache.cloudstack.api.response.AccountResponse;
2223
import org.junit.Assert;
2324
import org.junit.Test;
@@ -58,19 +59,29 @@ public void testGetTag() {
5859
}
5960

6061
@Test
61-
public void testUpdateDomainResponseNoDomains() {
62+
public void testUpdateAccountResponseNoAccounts() {
6263
ListAccountsCmd cmd = new ListAccountsCmd();
6364
cmd._resourceLimitService = resourceLimitService;
6465
cmd.updateAccountResponse(null);
6566
Mockito.verify(resourceLimitService, Mockito.never()).updateTaggedResourceLimitsAndCountsForAccounts(Mockito.anyList(), Mockito.anyString());
6667
}
6768

6869
@Test
69-
public void testUpdateDomainResponseWithDomains() {
70+
public void testUpdateDomainResponseWithAccounts() {
7071
ListAccountsCmd cmd = new ListAccountsCmd();
7172
cmd._resourceLimitService = resourceLimitService;
7273
ReflectionTestUtils.setField(cmd, "tag", "abc");
7374
cmd.updateAccountResponse(List.of(Mockito.mock(AccountResponse.class)));
7475
Mockito.verify(resourceLimitService, Mockito.times(1)).updateTaggedResourceLimitsAndCountsForAccounts(Mockito.any(), Mockito.any());
7576
}
77+
78+
@Test
79+
public void testUpdateDomainResponseWithAccountsMinDetails() {
80+
ListAccountsCmd cmd = new ListAccountsCmd();
81+
ReflectionTestUtils.setField(cmd, "viewDetails", List.of(ApiConstants.DomainDetails.min.toString()));
82+
cmd._resourceLimitService = resourceLimitService;
83+
ReflectionTestUtils.setField(cmd, "tag", "abc");
84+
cmd.updateAccountResponse(List.of(Mockito.mock(AccountResponse.class)));
85+
Mockito.verify(resourceLimitService, Mockito.never()).updateTaggedResourceLimitsAndCountsForAccounts(Mockito.any(), Mockito.any());
86+
}
7687
}

engine/schema/src/main/java/com/cloud/domain/dao/DomainDetailsDaoImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public String getConfigValue(long id, String key) {
113113
String enableDomainSettingsForChildDomain = _configDao.getValue("enable.domain.settings.for.child.domain");
114114
if (!Boolean.parseBoolean(enableDomainSettingsForChildDomain)) {
115115
vo = findDetail(id, key);
116-
return vo == null ? null : vo.getValue();
116+
return vo == null ? null : getActualValue(vo);
117117
}
118118
DomainVO domain = _domainDao.findById(id);
119119
// if value is not configured in domain then check its parent domain till ROOT
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package com.cloud.capacity.dao;
18+
19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertSame;
21+
import static org.junit.Assert.assertTrue;
22+
import static org.mockito.Mockito.any;
23+
import static org.mockito.Mockito.doReturn;
24+
import static org.mockito.Mockito.eq;
25+
import static org.mockito.Mockito.mock;
26+
import static org.mockito.Mockito.verify;
27+
import static org.mockito.Mockito.when;
28+
29+
import java.util.Arrays;
30+
import java.util.Collections;
31+
import java.util.List;
32+
33+
import org.junit.Before;
34+
import org.junit.Test;
35+
import org.junit.runner.RunWith;
36+
import org.mockito.InjectMocks;
37+
import org.mockito.Mockito;
38+
import org.mockito.Spy;
39+
import org.mockito.junit.MockitoJUnitRunner;
40+
41+
import com.cloud.capacity.CapacityVO;
42+
import com.cloud.utils.db.SearchBuilder;
43+
import com.cloud.utils.db.SearchCriteria;
44+
45+
@RunWith(MockitoJUnitRunner.class)
46+
public class CapacityDaoImplTest {
47+
@Spy
48+
@InjectMocks
49+
CapacityDaoImpl capacityDao = new CapacityDaoImpl();
50+
51+
private SearchBuilder<CapacityVO> searchBuilder;
52+
private SearchCriteria<CapacityVO> searchCriteria;
53+
54+
@Before
55+
public void setUp() {
56+
searchBuilder = mock(SearchBuilder.class);
57+
CapacityVO capacityVO = mock(CapacityVO.class);
58+
when(searchBuilder.entity()).thenReturn(capacityVO);
59+
searchCriteria = mock(SearchCriteria.class);
60+
doReturn(searchBuilder).when(capacityDao).createSearchBuilder();
61+
when(searchBuilder.create()).thenReturn(searchCriteria);
62+
}
63+
64+
@Test
65+
public void testListByHostIdTypes() {
66+
// Prepare inputs
67+
Long hostId = 1L;
68+
List<Short> capacityTypes = Arrays.asList((short)1, (short)2);
69+
CapacityVO capacity1 = new CapacityVO();
70+
CapacityVO capacity2 = new CapacityVO();
71+
List<CapacityVO> mockResult = Arrays.asList(capacity1, capacity2);
72+
doReturn(mockResult).when(capacityDao).listBy(any(SearchCriteria.class));
73+
List<CapacityVO> result = capacityDao.listByHostIdTypes(hostId, capacityTypes);
74+
verify(searchBuilder).and(eq("hostId"), any(), eq(SearchCriteria.Op.EQ));
75+
verify(searchBuilder).and(eq("type"), any(), eq(SearchCriteria.Op.IN));
76+
verify(searchBuilder).done();
77+
verify(searchCriteria).setParameters("hostId", hostId);
78+
verify(searchCriteria).setParameters("type", capacityTypes.toArray());
79+
verify(capacityDao).listBy(searchCriteria);
80+
assertEquals(2, result.size());
81+
assertSame(capacity1, result.get(0));
82+
assertSame(capacity2, result.get(1));
83+
}
84+
85+
@Test
86+
public void testListByHostIdTypesEmptyResult() {
87+
Long hostId = 1L;
88+
List<Short> capacityTypes = Arrays.asList((short)1, (short)2);
89+
doReturn(Collections.emptyList()).when(capacityDao).listBy(any(SearchCriteria.class));
90+
List<CapacityVO> result = capacityDao.listByHostIdTypes(hostId, capacityTypes);
91+
verify(searchBuilder).and(Mockito.eq("hostId"), any(), eq(SearchCriteria.Op.EQ));
92+
verify(searchBuilder).and(eq("type"), any(), eq(SearchCriteria.Op.IN));
93+
verify(searchBuilder).done();
94+
verify(searchCriteria).setParameters("hostId", hostId);
95+
verify(searchCriteria).setParameters("type", capacityTypes.toArray());
96+
verify(capacityDao).listBy(searchCriteria);
97+
assertTrue(result.isEmpty());
98+
}
99+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package com.cloud.dc.dao;
18+
19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertTrue;
21+
import static org.mockito.Mockito.any;
22+
import static org.mockito.Mockito.doReturn;
23+
import static org.mockito.Mockito.isNull;
24+
import static org.mockito.Mockito.mock;
25+
import static org.mockito.Mockito.verify;
26+
import static org.mockito.Mockito.when;
27+
28+
import java.util.Arrays;
29+
import java.util.Collections;
30+
import java.util.List;
31+
32+
import org.junit.Before;
33+
import org.junit.Test;
34+
import org.junit.runner.RunWith;
35+
import org.mockito.InjectMocks;
36+
import org.mockito.Spy;
37+
import org.mockito.junit.MockitoJUnitRunner;
38+
39+
import com.cloud.dc.ClusterVO;
40+
import com.cloud.utils.db.GenericSearchBuilder;
41+
import com.cloud.utils.db.SearchBuilder;
42+
43+
@RunWith(MockitoJUnitRunner.class)
44+
public class ClusterDaoImplTest {
45+
@Spy
46+
@InjectMocks
47+
ClusterDaoImpl clusterDao = new ClusterDaoImpl();
48+
49+
private GenericSearchBuilder<ClusterVO, Long> genericSearchBuilder;
50+
51+
@Before
52+
public void setUp() {
53+
genericSearchBuilder = mock(SearchBuilder.class);
54+
ClusterVO entityVO = mock(ClusterVO.class);
55+
when(genericSearchBuilder.entity()).thenReturn(entityVO);
56+
doReturn(genericSearchBuilder).when(clusterDao).createSearchBuilder(Long.class);
57+
}
58+
59+
@Test
60+
public void testListAllIds() {
61+
List<Long> mockIds = Arrays.asList(1L, 2L, 3L);
62+
doReturn(mockIds).when(clusterDao).customSearch(any(), isNull());
63+
List<Long> result = clusterDao.listAllIds();
64+
verify(clusterDao).customSearch(genericSearchBuilder.create(), null);
65+
assertEquals(3, result.size());
66+
assertEquals(Long.valueOf(1L), result.get(0));
67+
assertEquals(Long.valueOf(2L), result.get(1));
68+
assertEquals(Long.valueOf(3L), result.get(2));
69+
}
70+
71+
@Test
72+
public void testListAllIdsEmptyResult() {
73+
doReturn(Collections.emptyList()).when(clusterDao).customSearch(any(), isNull());
74+
List<Long> result = clusterDao.listAllIds();
75+
verify(clusterDao).customSearch(genericSearchBuilder.create(), null);
76+
assertTrue(result.isEmpty());
77+
}
78+
}

0 commit comments

Comments
 (0)