CLOUDSTACK-9252: Mock application context for unit test

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c5677cf6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c5677cf6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c5677cf6

Branch: refs/heads/master
Commit: c5677cf634c66d1bc85ae8dbb3a8b50fb8823969
Parents: 068fcea
Author: nvazquez <[email protected]>
Authored: Thu Feb 4 09:50:25 2016 -0800
Committer: nvazquez <[email protected]>
Committed: Thu Feb 4 09:56:53 2016 -0800

----------------------------------------------------------------------
 .../vmware/manager/VmwareManagerImpl.java       |  7 +++--
 .../vmware/VmwareDatacenterApiUnitTest.java     | 32 ++++++--------------
 2 files changed, 15 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c5677cf6/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
index 71383c3..a477437 100644
--- 
a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
+++ 
b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/manager/VmwareManagerImpl.java
@@ -112,6 +112,7 @@ import com.cloud.storage.StorageLayer;
 import com.cloud.utils.FileUtil;
 import com.cloud.utils.NumbersUtil;
 import com.cloud.utils.Pair;
+import com.cloud.utils.component.ComponentContext;
 import com.cloud.utils.component.ManagerBase;
 import com.cloud.utils.concurrency.NamedThreadFactory;
 import com.cloud.utils.db.DB;
@@ -200,10 +201,12 @@ public class VmwareManagerImpl extends ManagerBase 
implements VmwareManager, Vmw
 
     private final ScheduledExecutorService _hostScanScheduler = 
Executors.newScheduledThreadPool(1, new NamedThreadFactory("Vmware-Host-Scan"));
 
+    private ApplicationContext applicationContext;
+
     public VmwareManagerImpl() {
-        _storageMgr = new VmwareStorageManagerImpl(this);
-        ApplicationContext applicationContext = 
com.cloud.utils.component.ComponentContext.getApplicationContext();
+        applicationContext = ComponentContext.getApplicationContext();
         imageStoreDetailsUtil = 
applicationContext.getBean("imageStoreDetailsUtil", 
ImageStoreDetailsUtil.class);
+        _storageMgr = new VmwareStorageManagerImpl(this);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c5677cf6/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java
----------------------------------------------------------------------
diff --git 
a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java
 
b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java
index c72d9d4..0f056ee 100644
--- 
a/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java
+++ 
b/plugins/hypervisors/vmware/test/com/cloud/hypervisor/vmware/VmwareDatacenterApiUnitTest.java
@@ -38,6 +38,8 @@ import org.mockito.Matchers;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScan.Filter;
@@ -54,8 +56,6 @@ import 
org.apache.cloudstack.api.command.admin.zone.RemoveVmwareDcCmd;
 import org.apache.cloudstack.context.CallContext;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager;
 import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreDao;
-import org.apache.cloudstack.storage.datastore.db.ImageStoreDetailsDao;
 import org.apache.cloudstack.test.utils.SpringUtils;
 
 import com.cloud.agent.AgentManager;
@@ -101,6 +101,7 @@ import com.cloud.vm.dao.UserVmDao;
 
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(loader = AnnotationConfigContextLoader.class)
+@PrepareForTest({ComponentContext.class, ApplicationContext.class})
 public class VmwareDatacenterApiUnitTest {
 
     @Inject
@@ -133,9 +134,6 @@ public class VmwareDatacenterApiUnitTest {
     @Inject
     AccountManager _acctMgr;
 
-    @Inject
-    ImageStoreDetailsUtil imageStoreDetailsUtil;
-
     long zoneId;
     long podId;
     long clusterId;
@@ -163,6 +161,13 @@ public class VmwareDatacenterApiUnitTest {
 
     @BeforeClass
     public static void setUp() throws ConfigurationException {
+        ComponentContext ctx = new ComponentContext();
+        ImageStoreDetailsUtil imgSDUtil = 
Mockito.mock(ImageStoreDetailsUtil.class);
+        
Mockito.when(imgSDUtil.getNfsVersion(Mockito.anyLong())).thenReturn("3");
+        
Mockito.when(imgSDUtil.getNfsVersionByUuid(Mockito.anyString())).thenReturn("3");
+        ApplicationContext appCtx = Mockito.mock(ApplicationContext.class);
+        Mockito.when(appCtx.getBean(Mockito.anyString(), 
Mockito.any(ImageStoreDetailsUtil.class))).thenReturn(imgSDUtil);
+        ctx.setApplicationContext(appCtx);
     }
 
     @Before
@@ -230,8 +235,6 @@ public class VmwareDatacenterApiUnitTest {
         Mockito.when(addCmd.getPassword()).thenReturn(password);
         Mockito.when(addCmd.getName()).thenReturn(vmwareDcName);
         Mockito.when(removeCmd.getZoneId()).thenReturn(1L);
-        
Mockito.when(imageStoreDetailsUtil.getNfsVersion(Mockito.anyLong())).thenReturn(null);
-        
Mockito.when(imageStoreDetailsUtil.getNfsVersionByUuid(Mockito.anyString())).thenReturn(null);
     }
 
     @After
@@ -439,21 +442,6 @@ public class VmwareDatacenterApiUnitTest {
             return Mockito.mock(DataStoreManager.class);
         }
 
-        @Bean
-        public ImageStoreDetailsUtil imageStoreDetailsUtil() {
-            return Mockito.mock(ImageStoreDetailsUtil.class);
-        }
-
-        @Bean
-        public ImageStoreDao imageStoreDao() {
-            return Mockito.mock(ImageStoreDao.class);
-        }
-
-        @Bean
-        public ImageStoreDetailsDao imageStoreDetailsDao() {
-            return Mockito.mock(ImageStoreDetailsDao.class);
-        }
-
         public static class Library implements TypeFilter {
 
             @Override

Reply via email to