|
17 | 17 | package com.cloud.vm; |
18 | 18 |
|
19 | 19 | import java.util.ArrayList; |
| 20 | +import java.util.Arrays; |
20 | 21 | import java.util.HashMap; |
| 22 | +import java.util.List; |
21 | 23 |
|
| 24 | +import com.cloud.server.ResourceTag; |
| 25 | +import com.cloud.tags.ResourceTagVO; |
| 26 | +import com.cloud.tags.TaggedResourceManagerImpl; |
| 27 | +import com.cloud.tags.dao.ResourceTagDao; |
22 | 28 | import org.apache.cloudstack.api.BaseCmd.HTTPMethod; |
23 | 29 | import org.apache.cloudstack.api.command.user.vm.UpdateVMCmd; |
24 | 30 | import org.apache.cloudstack.context.CallContext; |
25 | 31 | import org.junit.Assert; |
26 | 32 | import org.junit.Before; |
27 | 33 | import org.junit.Test; |
28 | 34 | import org.junit.runner.RunWith; |
| 35 | + |
29 | 36 | import org.mockito.BDDMockito; |
30 | 37 | import org.mockito.InjectMocks; |
31 | 38 | import org.mockito.Mock; |
@@ -76,6 +83,13 @@ public class UserVmManagerImplTest { |
76 | 83 | @Mock |
77 | 84 | private NetworkModel networkModel; |
78 | 85 |
|
| 86 | + @Mock |
| 87 | + private TaggedResourceManagerImpl taggedResourceManagerMock; |
| 88 | + |
| 89 | + @Mock |
| 90 | + private ResourceTagDao resourceTagDaoMock; |
| 91 | + |
| 92 | + |
79 | 93 | private long vmId = 1l; |
80 | 94 |
|
81 | 95 | @Before |
@@ -276,4 +290,43 @@ private void configureValidateOrReplaceMacAddressTest(int times, String macAddre |
276 | 290 | Mockito.verify(networkModel, Mockito.times(times)).getNextAvailableMacAddressInNetwork(Mockito.anyLong()); |
277 | 291 | Assert.assertEquals(expectedMacAddress, returnedMacAddress); |
278 | 292 | } |
| 293 | + |
| 294 | + @Test |
| 295 | + public void validateRemoveTagsWhenExists() { |
| 296 | + |
| 297 | + List<ResourceTag> resourceTags = Arrays.asList(new ResourceTagVO("test", "test", 1l, 2l, |
| 298 | + Long.valueOf(123), ResourceTag.ResourceObjectType.UserVm, "", "test")); |
| 299 | + |
| 300 | + List<String> resourceIds = Arrays.asList("123"); |
| 301 | + |
| 302 | + Mockito.when(taggedResourceManagerMock.getUuid("123", ResourceTag.ResourceObjectType.UserVm)).thenReturn("123"); |
| 303 | + Mockito.when(taggedResourceManagerMock.getResourceId("123", ResourceTag.ResourceObjectType.UserVm)).thenReturn(Long.valueOf(123)); |
| 304 | + |
| 305 | + Mockito.<List<? extends ResourceTag>>when(taggedResourceManagerMock.listByResourceTypeAndId(ResourceTag.ResourceObjectType.UserVm, Long.valueOf(123))).thenReturn(resourceTags); |
| 306 | + Mockito.when(taggedResourceManagerMock.deleteTags(resourceIds, ResourceTag.ResourceObjectType.UserVm, null)).thenReturn(true); |
| 307 | + |
| 308 | + Mockito.when(userVmDao.findById(123l)).thenReturn(userVmVoMock); |
| 309 | + Mockito.when(userVmVoMock.getUuid()).thenReturn("123"); |
| 310 | + |
| 311 | + |
| 312 | + userVmManagerImpl.removeTagsFromVm(Long.valueOf(123)); |
| 313 | + Assert.assertTrue(taggedResourceManagerMock.deleteTags(resourceIds, ResourceTag.ResourceObjectType.UserVm, null)); |
| 314 | + } |
| 315 | + |
| 316 | + |
| 317 | + @Test |
| 318 | + public void validateWhenRemoveTagsNoExists() { |
| 319 | + |
| 320 | + List<ResourceTag> resourceTags = Arrays.asList(); |
| 321 | + |
| 322 | + Mockito.when(taggedResourceManagerMock.getResourceId("1l", ResourceTag.ResourceObjectType.UserVm)).thenReturn(1l); |
| 323 | + Mockito.<List<? extends ResourceTag>>when(taggedResourceManagerMock.listByResourceTypeAndId(ResourceTag.ResourceObjectType.UserVm, 1l)).thenReturn(resourceTags); |
| 324 | + |
| 325 | + Mockito.when(userVmVoMock.getUuid()).thenReturn("1l"); |
| 326 | + |
| 327 | + Mockito.when(userVmDao.findById(Mockito.eq(vmId))).thenReturn(userVmVoMock); |
| 328 | + |
| 329 | + userVmManagerImpl.removeTagsFromVm(1l); |
| 330 | + Assert.assertEquals(0, taggedResourceManagerMock.listByResourceTypeAndId(ResourceTag.ResourceObjectType.UserVm, 1l).size()); |
| 331 | + } |
279 | 332 | } |
0 commit comments