|
18 | 18 |
|
19 | 19 | package com.cloud.template; |
20 | 20 |
|
| 21 | +import static org.mockito.Mockito.any; |
| 22 | +import static org.mockito.Mockito.anyLong; |
| 23 | +import static org.mockito.Mockito.doAnswer; |
| 24 | +import static org.mockito.Mockito.eq; |
| 25 | +import static org.mockito.Mockito.mock; |
| 26 | +import static org.mockito.Mockito.when; |
| 27 | + |
21 | 28 | import java.lang.reflect.Field; |
22 | 29 | import java.lang.reflect.InvocationTargetException; |
23 | 30 | import java.lang.reflect.Method; |
|
29 | 36 | import java.util.concurrent.ExecutionException; |
30 | 37 |
|
31 | 38 | import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; |
| 39 | +import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; |
32 | 40 | import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory; |
33 | 41 | import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo; |
34 | 42 | import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService; |
|
44 | 52 | import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity; |
45 | 53 | import org.junit.Assert; |
46 | 54 | import org.junit.Before; |
47 | | -//import org.junit.Test; |
| 55 | +import org.junit.Test; |
48 | 56 | import org.junit.runner.RunWith; |
49 | 57 | import org.mockito.InjectMocks; |
50 | 58 | import org.mockito.Mock; |
|
61 | 69 | import com.cloud.event.UsageEventUtils; |
62 | 70 | import com.cloud.event.UsageEventVO; |
63 | 71 | import com.cloud.event.dao.UsageEventDao; |
| 72 | +import com.cloud.exception.InvalidParameterValueException; |
64 | 73 | import com.cloud.storage.Storage.ImageFormat; |
65 | 74 | import com.cloud.storage.TemplateProfile; |
66 | 75 | import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; |
67 | | -import com.cloud.storage.dao.VMTemplateZoneDao; |
68 | 76 | import com.cloud.storage.VMTemplateVO; |
| 77 | +import com.cloud.storage.dao.VMTemplateZoneDao; |
69 | 78 | import com.cloud.user.AccountVO; |
70 | 79 | import com.cloud.user.ResourceLimitService; |
71 | 80 | import com.cloud.user.dao.AccountDao; |
72 | 81 | import com.cloud.utils.component.ComponentContext; |
73 | 82 |
|
74 | | -import static org.mockito.Mockito.any; |
75 | | -import static org.mockito.Mockito.anyLong; |
76 | | -import static org.mockito.Mockito.when; |
77 | | -import static org.mockito.Mockito.eq; |
78 | | -import static org.mockito.Mockito.doAnswer; |
79 | | -import static org.mockito.Mockito.mock; |
80 | | - |
81 | 83 | @RunWith(PowerMockRunner.class) |
82 | 84 | @PrepareForTest(ComponentContext.class) |
83 | 85 | public class HypervisorTemplateAdapterTest { |
@@ -118,6 +120,9 @@ public class HypervisorTemplateAdapterTest { |
118 | 120 | @Mock |
119 | 121 | ConfigurationDao _configDao; |
120 | 122 |
|
| 123 | + @Mock |
| 124 | + DataStoreManager storeMgr; |
| 125 | + |
121 | 126 | @InjectMocks |
122 | 127 | HypervisorTemplateAdapter _adapter; |
123 | 128 |
|
@@ -282,4 +287,27 @@ public void testEmitDeleteEventUuid() throws InterruptedException, ExecutionExce |
282 | 287 |
|
283 | 288 | cleanupUsageUtils(); |
284 | 289 | } |
| 290 | + |
| 291 | + @Test |
| 292 | + public void testCheckZoneImageStoresDirectDownloadTemplate() { |
| 293 | + VMTemplateVO templateVO = Mockito.mock(VMTemplateVO.class); |
| 294 | + Mockito.when(templateVO.isDirectDownload()).thenReturn(true); |
| 295 | + _adapter.checkZoneImageStores(templateVO, List.of(1L)); |
| 296 | + } |
| 297 | + |
| 298 | + @Test |
| 299 | + public void testCheckZoneImageStoresRegularTemplateWithStore() { |
| 300 | + VMTemplateVO templateVO = Mockito.mock(VMTemplateVO.class); |
| 301 | + Mockito.when(templateVO.isDirectDownload()).thenReturn(false); |
| 302 | + Mockito.when(storeMgr.getImageStoresByScope(Mockito.any())).thenReturn(List.of(Mockito.mock(DataStore.class))); |
| 303 | + _adapter.checkZoneImageStores(templateVO, List.of(1L)); |
| 304 | + } |
| 305 | + |
| 306 | + @Test(expected = InvalidParameterValueException.class) |
| 307 | + public void testCheckZoneImageStoresRegularTemplateNoStore() { |
| 308 | + VMTemplateVO templateVO = Mockito.mock(VMTemplateVO.class); |
| 309 | + Mockito.when(templateVO.isDirectDownload()).thenReturn(false); |
| 310 | + Mockito.when(storeMgr.getImageStoresByScope(Mockito.any())).thenReturn(new ArrayList<>()); |
| 311 | + _adapter.checkZoneImageStores(templateVO, List.of(1L)); |
| 312 | + } |
285 | 313 | } |
0 commit comments