|
17 | 17 | package com.cloud.usage; |
18 | 18 |
|
19 | 19 | import java.util.ArrayList; |
| 20 | +import java.util.Date; |
20 | 21 | import java.util.List; |
21 | 22 |
|
22 | 23 | import com.cloud.event.dao.UsageEventDetailsDao; |
| 24 | +import com.cloud.usage.dao.UsageBackupDao; |
23 | 25 | import com.cloud.usage.dao.UsageVMSnapshotDao; |
24 | 26 | import org.junit.Before; |
25 | 27 | import org.junit.Test; |
@@ -58,6 +60,9 @@ public class UsageManagerImplTest { |
58 | 60 | @Mock |
59 | 61 | private AccountDao accountDaoMock; |
60 | 62 |
|
| 63 | + @Mock |
| 64 | + private UsageBackupDao usageBackupDaoMock; |
| 65 | + |
61 | 66 | @Mock |
62 | 67 | private UsageVPNUserVO vpnUserMock; |
63 | 68 |
|
@@ -243,4 +248,46 @@ public void handleVMSnapshotEventTestEventIsNeitherAddNorRemove() { |
243 | 248 | Mockito.verify(usageManagerImpl, Mockito.never()).createUsageVpnUser(usageEventVOMock,accountMock); |
244 | 249 | Mockito.verify(usageManagerImpl, Mockito.never()).deleteUsageVpnUser(usageEventVOMock, accountMock); |
245 | 250 | } |
| 251 | + |
| 252 | + private void mockBackupEvent(String type) { |
| 253 | + Mockito.when(usageEventVOMock.getType()).thenReturn(type); |
| 254 | + Mockito.when(usageEventVOMock.getResourceId()).thenReturn(10L); |
| 255 | + Mockito.when(usageEventVOMock.getZoneId()).thenReturn(1L); |
| 256 | + Mockito.when(usageEventVOMock.getAccountId()).thenReturn(accountMockId); |
| 257 | + Mockito.when(usageEventVOMock.getOfferingId()).thenReturn(20L); |
| 258 | + } |
| 259 | + |
| 260 | + @Test |
| 261 | + public void createBackupEventTestAssignCreatesUsage() { |
| 262 | + mockBackupEvent(EventTypes.EVENT_VM_BACKUP_OFFERING_ASSIGN); |
| 263 | + Mockito.when(usageEventVOMock.getCreateDate()).thenReturn(new Date()); |
| 264 | + Mockito.when(usageBackupDaoMock.listActiveUsage(10L, 20L)).thenReturn(new ArrayList<>()); |
| 265 | + |
| 266 | + usageManagerImpl.createBackupEvent(usageEventVOMock); |
| 267 | + |
| 268 | + Mockito.verify(usageBackupDaoMock).persist(Mockito.any(UsageBackupVO.class)); |
| 269 | + } |
| 270 | + |
| 271 | + @Test |
| 272 | + public void createBackupEventTestAssignSkipsWhenUsageIsActive() { |
| 273 | + mockBackupEvent(EventTypes.EVENT_VM_BACKUP_OFFERING_ASSIGN); |
| 274 | + Mockito.when(usageBackupDaoMock.listActiveUsage(10L, 20L)).thenReturn(List.of(Mockito.mock(UsageBackupVO.class))); |
| 275 | + |
| 276 | + usageManagerImpl.createBackupEvent(usageEventVOMock); |
| 277 | + |
| 278 | + Mockito.verify(usageBackupDaoMock, Mockito.never()).persist(Mockito.any(UsageBackupVO.class)); |
| 279 | + } |
| 280 | + |
| 281 | + @Test |
| 282 | + public void createBackupEventTestMetricPassesEventDate() { |
| 283 | + Date eventDate = new Date(); |
| 284 | + mockBackupEvent(EventTypes.EVENT_VM_BACKUP_USAGE_METRIC); |
| 285 | + Mockito.when(usageEventVOMock.getCreateDate()).thenReturn(eventDate); |
| 286 | + Mockito.when(usageEventVOMock.getSize()).thenReturn(100L); |
| 287 | + Mockito.when(usageEventVOMock.getVirtualSize()).thenReturn(1000L); |
| 288 | + |
| 289 | + usageManagerImpl.createBackupEvent(usageEventVOMock); |
| 290 | + |
| 291 | + Mockito.verify(usageBackupDaoMock).updateMetrics(10L, 20L, 100L, 1000L, eventDate); |
| 292 | + } |
246 | 293 | } |
0 commit comments