|
17 | 17 |
|
18 | 18 | package com.cloud.user; |
19 | 19 |
|
20 | | -import com.cloud.configuration.dao.ResourceCountDao; |
21 | | -import com.cloud.configuration.dao.ResourceLimitDao; |
22 | | -import com.cloud.dc.DedicatedResourceVO; |
23 | | -import com.cloud.dc.dao.DedicatedResourceDao; |
24 | | -import com.cloud.domain.Domain; |
25 | | -import com.cloud.domain.DomainVO; |
26 | | -import com.cloud.domain.dao.DomainDao; |
27 | | -import com.cloud.exception.InvalidParameterValueException; |
28 | | -import com.cloud.exception.PermissionDeniedException; |
29 | | -import com.cloud.network.dao.NetworkDomainDao; |
30 | | -import com.cloud.projects.ProjectManager; |
31 | | -import com.cloud.projects.dao.ProjectDao; |
32 | | -import com.cloud.service.dao.ServiceOfferingDao; |
33 | | -import com.cloud.storage.dao.DiskOfferingDao; |
34 | | -import com.cloud.user.dao.AccountDao; |
35 | | -import com.cloud.utils.db.GlobalLock; |
36 | | -import com.cloud.utils.exception.CloudRuntimeException; |
37 | | - |
38 | 20 | import java.util.ArrayList; |
39 | 21 | import java.util.List; |
| 22 | +import java.util.UUID; |
40 | 23 |
|
| 24 | +import org.apache.cloudstack.context.CallContext; |
41 | 25 | import org.apache.cloudstack.engine.orchestration.service.NetworkOrchestrationService; |
42 | 26 | import org.apache.cloudstack.framework.messagebus.MessageBus; |
43 | 27 | import org.apache.cloudstack.framework.messagebus.PublishScope; |
|
53 | 37 | import org.mockito.Spy; |
54 | 38 | import org.mockito.runners.MockitoJUnitRunner; |
55 | 39 |
|
| 40 | +import com.cloud.configuration.ConfigurationManager; |
| 41 | +import com.cloud.configuration.Resource.ResourceOwnerType; |
| 42 | +import com.cloud.configuration.dao.ResourceCountDao; |
| 43 | +import com.cloud.configuration.dao.ResourceLimitDao; |
| 44 | +import com.cloud.dc.DedicatedResourceVO; |
| 45 | +import com.cloud.dc.dao.DedicatedResourceDao; |
| 46 | +import com.cloud.domain.Domain; |
| 47 | +import com.cloud.domain.DomainVO; |
| 48 | +import com.cloud.domain.dao.DomainDao; |
| 49 | +import com.cloud.exception.InvalidParameterValueException; |
| 50 | +import com.cloud.exception.PermissionDeniedException; |
| 51 | +import com.cloud.network.dao.NetworkDomainDao; |
| 52 | +import com.cloud.projects.ProjectManager; |
| 53 | +import com.cloud.projects.dao.ProjectDao; |
| 54 | +import com.cloud.service.ServiceOfferingVO; |
| 55 | +import com.cloud.service.dao.ServiceOfferingDao; |
| 56 | +import com.cloud.storage.DiskOfferingVO; |
| 57 | +import com.cloud.storage.dao.DiskOfferingDao; |
| 58 | +import com.cloud.user.dao.AccountDao; |
| 59 | +import com.cloud.utils.db.Filter; |
| 60 | +import com.cloud.utils.db.GlobalLock; |
| 61 | +import com.cloud.utils.db.SearchCriteria; |
| 62 | +import com.cloud.utils.exception.CloudRuntimeException; |
| 63 | + |
56 | 64 | @RunWith(MockitoJUnitRunner.class) |
57 | 65 | public class DomainManagerImplTest { |
58 | 66 | @Mock |
@@ -83,6 +91,8 @@ public class DomainManagerImplTest { |
83 | 91 | NetworkDomainDao _networkDomainDao; |
84 | 92 | @Mock |
85 | 93 | MessageBus _messageBus; |
| 94 | + @Mock |
| 95 | + ConfigurationManager _configMgr; |
86 | 96 |
|
87 | 97 | @Spy |
88 | 98 | @InjectMocks |
@@ -178,6 +188,7 @@ public void testDeleteDomainRootDomain() { |
178 | 188 |
|
179 | 189 | @Test |
180 | 190 | public void testDeleteDomainNoCleanup() { |
| 191 | + Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true); |
181 | 192 | domainManager.deleteDomain(DOMAIN_ID, testDomainCleanup); |
182 | 193 | Mockito.verify(domainManager).deleteDomain(domain, testDomainCleanup); |
183 | 194 | Mockito.verify(domainManager).removeDomainWithNoAccountsForCleanupNetworksOrDedicatedResources(domain); |
@@ -224,4 +235,64 @@ public void testFailRemoveOperation() { |
224 | 235 | domainManager.failRemoveOperation(domain, domainAccountsForCleanup, domainNetworkIds, true); |
225 | 236 | } |
226 | 237 |
|
| 238 | + @Test |
| 239 | + public void deleteDomain() { |
| 240 | + DomainVO domain = new DomainVO(); |
| 241 | + domain.setId(20l); |
| 242 | + domain.setAccountId(30l); |
| 243 | + Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid"); |
| 244 | + UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); |
| 245 | + CallContext.register(user, account); |
| 246 | + |
| 247 | + Mockito.when(_domainDao.findById(20l)).thenReturn(domain); |
| 248 | + Mockito.doNothing().when(_accountMgr).checkAccess(Mockito.any(Account.class), Mockito.any(Domain.class)); |
| 249 | + Mockito.when(_domainDao.update(Mockito.eq(20l), Mockito.any(DomainVO.class))).thenReturn(true); |
| 250 | + Mockito.when(_accountDao.search(Mockito.any(SearchCriteria.class), (Filter)org.mockito.Matchers.isNull())).thenReturn(new ArrayList<AccountVO>()); |
| 251 | + Mockito.when(_networkDomainDao.listNetworkIdsByDomain(Mockito.anyLong())).thenReturn(new ArrayList<Long>()); |
| 252 | + Mockito.when(_accountDao.findCleanupsForRemovedAccounts(Mockito.anyLong())).thenReturn(new ArrayList<AccountVO>()); |
| 253 | + Mockito.when(_dedicatedDao.listByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<DedicatedResourceVO>()); |
| 254 | + Mockito.when(_domainDao.remove(Mockito.anyLong())).thenReturn(true); |
| 255 | + Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true); |
| 256 | + Mockito.when(_diskOfferingDao.listByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<DiskOfferingVO>()); |
| 257 | + Mockito.when(_offeringsDao.findServiceOfferingByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<ServiceOfferingVO>()); |
| 258 | + |
| 259 | + try { |
| 260 | + Assert.assertTrue(domainManager.deleteDomain(20l, false)); |
| 261 | + } finally { |
| 262 | + CallContext.unregister(); |
| 263 | + } |
| 264 | + } |
| 265 | + |
| 266 | + @Test |
| 267 | + public void deleteDomainCleanup() { |
| 268 | + DomainVO domain = new DomainVO(); |
| 269 | + domain.setId(20l); |
| 270 | + domain.setAccountId(30l); |
| 271 | + Account account = new AccountVO("testaccount", 1L, "networkdomain", (short)0, "uuid"); |
| 272 | + UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); |
| 273 | + CallContext.register(user, account); |
| 274 | + |
| 275 | + Mockito.when(_domainDao.findById(20l)).thenReturn(domain); |
| 276 | + Mockito.doNothing().when(_accountMgr).checkAccess(Mockito.any(Account.class), Mockito.any(Domain.class)); |
| 277 | + Mockito.when(_domainDao.update(Mockito.eq(20l), Mockito.any(DomainVO.class))).thenReturn(true); |
| 278 | + Mockito.when(_domainDao.createSearchCriteria()).thenReturn(Mockito.mock(SearchCriteria.class)); |
| 279 | + Mockito.when(_domainDao.search(Mockito.any(SearchCriteria.class), (Filter)org.mockito.Matchers.isNull())).thenReturn(new ArrayList<DomainVO>()); |
| 280 | + Mockito.when(_accountDao.createSearchCriteria()).thenReturn(Mockito.mock(SearchCriteria.class)); |
| 281 | + Mockito.when(_accountDao.search(Mockito.any(SearchCriteria.class), (Filter)org.mockito.Matchers.isNull())).thenReturn(new ArrayList<AccountVO>()); |
| 282 | + Mockito.when(_networkDomainDao.listNetworkIdsByDomain(Mockito.anyLong())).thenReturn(new ArrayList<Long>()); |
| 283 | + Mockito.when(_accountDao.findCleanupsForRemovedAccounts(Mockito.anyLong())).thenReturn(new ArrayList<AccountVO>()); |
| 284 | + Mockito.when(_dedicatedDao.listByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<DedicatedResourceVO>()); |
| 285 | + Mockito.when(_domainDao.remove(Mockito.anyLong())).thenReturn(true); |
| 286 | + Mockito.when(_resourceCountDao.removeEntriesByOwner(Mockito.anyLong(), Mockito.eq(ResourceOwnerType.Domain))).thenReturn(1l); |
| 287 | + Mockito.when(_resourceLimitDao.removeEntriesByOwner(Mockito.anyLong(), Mockito.eq(ResourceOwnerType.Domain))).thenReturn(1l); |
| 288 | + Mockito.when(_configMgr.releaseDomainSpecificVirtualRanges(Mockito.anyLong())).thenReturn(true); |
| 289 | + Mockito.when(_diskOfferingDao.listByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<DiskOfferingVO>()); |
| 290 | + Mockito.when(_offeringsDao.findServiceOfferingByDomainId(Mockito.anyLong())).thenReturn(new ArrayList<ServiceOfferingVO>()); |
| 291 | + |
| 292 | + try { |
| 293 | + Assert.assertTrue(domainManager.deleteDomain(20l, true)); |
| 294 | + } finally { |
| 295 | + CallContext.unregister(); |
| 296 | + } |
| 297 | + } |
227 | 298 | } |
0 commit comments