|
36 | 36 | import java.util.concurrent.ExecutionException; |
37 | 37 |
|
38 | 38 | import com.cloud.service.ServiceOfferingVO; |
| 39 | +import com.cloud.event.EventTypes; |
| 40 | +import com.cloud.event.UsageEventUtils; |
| 41 | +import com.cloud.offering.DiskOffering; |
| 42 | +import com.cloud.storage.dao.DiskOfferingDao; |
39 | 43 | import com.cloud.service.dao.ServiceOfferingDao; |
40 | 44 | import org.apache.cloudstack.acl.ControlledEntity; |
41 | 45 | import org.apache.cloudstack.acl.SecurityChecker.AccessType; |
|
69 | 73 | import org.mockito.Mock; |
70 | 74 | import org.mockito.Mockito; |
71 | 75 | import org.mockito.Spy; |
72 | | -import org.mockito.runners.MockitoJUnitRunner; |
| 76 | +import org.powermock.api.mockito.PowerMockito; |
| 77 | +import org.powermock.core.classloader.annotations.PowerMockIgnore; |
| 78 | +import org.powermock.core.classloader.annotations.PrepareForTest; |
| 79 | +import org.powermock.modules.junit4.PowerMockRunner; |
73 | 80 | import org.springframework.test.util.ReflectionTestUtils; |
74 | 81 |
|
75 | 82 | import com.cloud.api.query.dao.ServiceOfferingJoinDao; |
|
109 | 116 | import com.cloud.vm.snapshot.VMSnapshotVO; |
110 | 117 | import com.cloud.vm.snapshot.dao.VMSnapshotDao; |
111 | 118 |
|
112 | | -@RunWith(MockitoJUnitRunner.class) |
| 119 | +@RunWith(PowerMockRunner.class) |
| 120 | +@PowerMockIgnore("javax.management.*") |
113 | 121 | public class VolumeApiServiceImplTest { |
114 | 122 |
|
115 | 123 | @Spy |
116 | 124 | @InjectMocks |
117 | | - private VolumeApiServiceImpl volumeApiServiceImpl; |
| 125 | + private VolumeApiServiceImpl volumeApiServiceImpl = new VolumeApiServiceImpl(); |
118 | 126 | @Mock |
119 | 127 | private SnapshotManager snapshotManagerMock; |
120 | 128 | @Mock |
@@ -184,11 +192,21 @@ public class VolumeApiServiceImplTest { |
184 | 192 | @Mock |
185 | 193 | private AsyncCallFuture<VolumeApiResult> asyncCallFutureVolumeapiResultMock; |
186 | 194 |
|
| 195 | + @Mock |
| 196 | + private DiskOfferingDao diskOfferingDaoMock; |
| 197 | + |
| 198 | + @Mock |
| 199 | + private DiskOfferingVO diskOfferingVoMock; |
| 200 | + |
187 | 201 | private long accountMockId = 456l; |
188 | 202 | private long volumeMockId = 12313l; |
189 | 203 | private long vmInstanceMockId = 1123l; |
190 | 204 | private long volumeSizeMock = 456789921939l; |
191 | 205 |
|
| 206 | + private long diskOfferingMockId = 100203L; |
| 207 | + |
| 208 | + private long offeringMockId = 31902L; |
| 209 | + |
192 | 210 | @Before |
193 | 211 | public void setup() throws InterruptedException, ExecutionException { |
194 | 212 | Mockito.lenient().doReturn(volumeMockId).when(volumeDataStoreVoMock).getVolumeId(); |
@@ -1245,4 +1263,68 @@ private void prepareAndRunIsNewDiskOfferingTheSameAndCustomServiceOffering(long |
1245 | 1263 | boolean result = volumeApiServiceImpl.isNewDiskOfferingTheSameAndCustomServiceOffering(existingDiskOffering, newDiskOffering); |
1246 | 1264 | Assert.assertEquals(expectedResult, result); |
1247 | 1265 | } |
| 1266 | + |
| 1267 | + @Test |
| 1268 | + @PrepareForTest(UsageEventUtils.class) |
| 1269 | + public void publishVolumeCreationUsageEventTestNullDiskOfferingId() { |
| 1270 | + Mockito.doReturn(null).when(volumeVoMock).getDiskOfferingId(); |
| 1271 | + PowerMockito.mockStatic(UsageEventUtils.class); |
| 1272 | + |
| 1273 | + volumeApiServiceImpl.publishVolumeCreationUsageEvent(volumeVoMock); |
| 1274 | + |
| 1275 | + PowerMockito.verifyStatic(UsageEventUtils.class); |
| 1276 | + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volumeVoMock.getAccountId(), volumeVoMock.getDataCenterId(), volumeVoMock.getId(), volumeVoMock.getName(), |
| 1277 | + null, volumeVoMock.getTemplateId(), volumeVoMock.getSize(), Volume.class.getName(), volumeVoMock.getUuid(), volumeVoMock.isDisplayVolume()); |
| 1278 | + |
| 1279 | + } |
| 1280 | + |
| 1281 | + @Test |
| 1282 | + @PrepareForTest(UsageEventUtils.class) |
| 1283 | + public void publishVolumeCreationUsageEventTestNullDiskOfferingVo() { |
| 1284 | + Mockito.doReturn(diskOfferingMockId).when(volumeVoMock).getDiskOfferingId(); |
| 1285 | + Mockito.doReturn(null).when(diskOfferingDaoMock).findById(diskOfferingMockId); |
| 1286 | + PowerMockito.mockStatic(UsageEventUtils.class); |
| 1287 | + |
| 1288 | + volumeApiServiceImpl.publishVolumeCreationUsageEvent(volumeVoMock); |
| 1289 | + |
| 1290 | + PowerMockito.verifyStatic(UsageEventUtils.class); |
| 1291 | + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volumeVoMock.getAccountId(), volumeVoMock.getDataCenterId(), volumeVoMock.getId(), volumeVoMock.getName(), |
| 1292 | + null, volumeVoMock.getTemplateId(), volumeVoMock.getSize(), Volume.class.getName(), volumeVoMock.getUuid(), volumeVoMock.isDisplayVolume()); |
| 1293 | + |
| 1294 | + } |
| 1295 | + |
| 1296 | + @Test |
| 1297 | + @PrepareForTest(UsageEventUtils.class) |
| 1298 | + public void publishVolumeCreationUsageEventTestDiskOfferingVoTypeNotDisk() { |
| 1299 | + Mockito.doReturn(diskOfferingMockId).when(volumeVoMock).getDiskOfferingId(); |
| 1300 | + Mockito.doReturn(diskOfferingVoMock).when(diskOfferingDaoMock).findById(diskOfferingMockId); |
| 1301 | + Mockito.doReturn(DiskOffering.Type.Service).when(diskOfferingVoMock).getType(); |
| 1302 | + |
| 1303 | + PowerMockito.mockStatic(UsageEventUtils.class); |
| 1304 | + |
| 1305 | + volumeApiServiceImpl.publishVolumeCreationUsageEvent(volumeVoMock); |
| 1306 | + |
| 1307 | + PowerMockito.verifyStatic(UsageEventUtils.class); |
| 1308 | + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volumeVoMock.getAccountId(), volumeVoMock.getDataCenterId(), volumeVoMock.getId(), volumeVoMock.getName(), |
| 1309 | + null, volumeVoMock.getTemplateId(), volumeVoMock.getSize(), Volume.class.getName(), volumeVoMock.getUuid(), volumeVoMock.isDisplayVolume()); |
| 1310 | + |
| 1311 | + } |
| 1312 | + |
| 1313 | + @Test |
| 1314 | + @PrepareForTest(UsageEventUtils.class) |
| 1315 | + public void publishVolumeCreationUsageEventTestOfferingIdNotNull() { |
| 1316 | + Mockito.doReturn(diskOfferingMockId).when(volumeVoMock).getDiskOfferingId(); |
| 1317 | + Mockito.doReturn(diskOfferingVoMock).when(diskOfferingDaoMock).findById(diskOfferingMockId); |
| 1318 | + Mockito.doReturn(DiskOffering.Type.Disk).when(diskOfferingVoMock).getType(); |
| 1319 | + Mockito.doReturn(offeringMockId).when(diskOfferingVoMock).getId(); |
| 1320 | + |
| 1321 | + PowerMockito.mockStatic(UsageEventUtils.class); |
| 1322 | + |
| 1323 | + volumeApiServiceImpl.publishVolumeCreationUsageEvent(volumeVoMock); |
| 1324 | + |
| 1325 | + PowerMockito.verifyStatic(UsageEventUtils.class); |
| 1326 | + UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_CREATE, volumeVoMock.getAccountId(), volumeVoMock.getDataCenterId(), volumeVoMock.getId(), volumeVoMock.getName(), |
| 1327 | + offeringMockId, volumeVoMock.getTemplateId(), volumeVoMock.getSize(), Volume.class.getName(), volumeVoMock.getUuid(), volumeVoMock.isDisplayVolume()); |
| 1328 | + |
| 1329 | + } |
1248 | 1330 | } |
0 commit comments