Roy Golan has uploaded a new change for review.

Change subject: core: replace mock with injections in RemoveDiskCommandTest
......................................................................

core: replace mock with injections in RemoveDiskCommandTest

Change-Id: I733e926e2a07daa6d5c9dca6ff5020a8324590e6
Signed-off-by: Roy Golan <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommandBaseDependenciesTest.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockDbFacade.java
A 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockVMDAo.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveDiskCommandTest.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
7 files changed, 208 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/73/19173/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
index 15ad806..fcee209 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
@@ -213,6 +213,11 @@
         this.commandId = commandId;
     }
 
+    @Override
+    protected DbFacade getDbFacade() {
+        return dbFacade;
+    }
+
     /**
      * This method should be used only at {@link CommandBase} code for creating
      * and execution {@link CommandBase} objects directly.
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
index 21e7ff9..bd52034 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveDiskCommand.java
@@ -51,10 +51,12 @@
 import org.ovirt.engine.core.utils.transaction.TransactionMethod;
 import org.ovirt.engine.core.utils.transaction.TransactionSupport;
 
+import javax.inject.Inject;
+
 @DisableInPrepareMode
 @LockIdNameAttribute
 @NonTransactiveCommandAttribute
-public class RemoveDiskCommand<T extends RemoveDiskParameters> extends 
CommandBase<T>
+public class RemoveDiskCommand extends CommandBase<RemoveDiskParameters>
         implements QuotaStorageDependent {
 
     private Disk disk;
@@ -62,7 +64,8 @@
     private List<VM> listVms;
     private String cachedDiskIsBeingRemovedLockMessage;
 
-    public RemoveDiskCommand(T parameters) {
+    @Inject
+    public RemoveDiskCommand(RemoveDiskParameters parameters) {
         super(parameters);
         setStorageDomainId(getParameters().getStorageDomainId());
     }
@@ -242,16 +245,15 @@
     }
 
     protected VmDeviceDAO getVmDeviceDAO() {
-        return DbFacade.getInstance()
-                .getVmDeviceDao();
+        return getDbFacade().getVmDeviceDao();
     }
 
     protected DiskImageDAO getDiskImageDao() {
-        return DbFacade.getInstance().getDiskImageDao();
+        return getDbFacade().getDiskImageDao();
     }
 
     protected DiskDao getDiskDao() {
-        return DbFacade.getInstance().getDiskDao();
+        return getDbFacade().getDiskDao();
     }
 
     @Override
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommandBaseDependenciesTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommandBaseDependenciesTest.java
index 9ec5a4f..4d03627 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommandBaseDependenciesTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/CommandBaseDependenciesTest.java
@@ -34,13 +34,17 @@
     /**
      * deploy an jar archive with a our test class and empty beans.xml into 
the container
      */
-    @Deployment
-    public static JavaArchive createDeployment() {
+
+    public static JavaArchive createDeployment(Class<?>... classes) {
         return ShrinkWrap.create(JavaArchive.class)
-                .addClasses(CDITestCommand.class, MockDbFacade.class, 
MockConfig.class)
+                .addClasses(classes)
                 .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
     }
 
+    @Deployment
+    public static JavaArchive deploy() {
+        return createDeployment(CDITestCommand.class, MockDbFacade.class, 
MockConfig.class);
+    }
 
     /**
      * A Command that test that the actual dependencies of Commands gets 
injected.
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockDbFacade.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockDbFacade.java
index 700b22b..8c9062e 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockDbFacade.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockDbFacade.java
@@ -1,6 +1,8 @@
 package org.ovirt.engine.core.bll;
 
+import org.mockito.Mockito;
 import org.ovirt.engine.core.dal.dbbroker.DbFacade;
+import org.ovirt.engine.core.dao.DAO;
 
 /**
  * A mock of DbFacade that has a toString which will be used in a command - to 
test its really the DbFacade instance we
@@ -17,4 +19,9 @@
         return MockDbFacade.class.getSimpleName();
     }
 
+    @Override
+    protected <T extends DAO> T getDao(Class<T> daoType) {
+        return Mockito.mock(daoType);
+    }
+
 }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockVMDAo.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockVMDAo.java
new file mode 100644
index 0000000..833c657
--- /dev/null
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/MockVMDAo.java
@@ -0,0 +1,140 @@
+package org.ovirt.engine.core.bll;
+
+import org.ovirt.engine.core.common.businessentities.VM;
+import org.ovirt.engine.core.compat.Guid;
+import org.ovirt.engine.core.dao.VmDAO;
+
+import java.util.List;
+import java.util.Map;
+
+public class MockVMDAo implements VmDAO {
+    @Override
+    public VM get(Guid id) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public VM get(Guid id, Guid userID, boolean isFiltered) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public VM getByNameForDataCenter(Guid dataCenterId, String name, Guid 
userID, boolean isFiltered) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public VM getForHibernationImage(Guid hibernationImage) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public Map<Boolean, List<VM>> getForDisk(Guid disk) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getVmsListForDisk(Guid id) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForUser(Guid user) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForUserWithGroupsAndUserRoles(Guid user) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForAdGroupByName(String name) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllWithTemplate(Guid template) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllRunningForVds(Guid vds) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllRunningOnOrMigratingToVds(Guid vds) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public Map<Guid, VM> getAllRunningByVds(Guid vds) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllUsingQuery(String query) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForStorageDomain(Guid storageDomain) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllActiveForStorageDomain(Guid storageDomain) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllVmsRelatedToQuotaId(Guid quotaId) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getVmsByIds(List<Guid> vmsIds) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAll(Guid userID, boolean isFiltered) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAll() {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public void saveIsInitialized(Guid vmid, boolean isInitialized) {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    @Override
+    public void remove(Guid vm) {
+        //To change body of implemented methods use File | Settings | File 
Templates.
+    }
+
+    @Override
+    public List<VM> getAllForNetwork(Guid networkId) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForVdsGroup(Guid vds_group_id) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllForVmPool(Guid vmPoolId) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+
+    @Override
+    public List<VM> getAllMigratingToHost(Guid vdsId) {
+        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    }
+}
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveDiskCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveDiskCommandTest.java
index bd74d5a..9789c45 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveDiskCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RemoveDiskCommandTest.java
@@ -6,12 +6,16 @@
 
 import java.util.Collections;
 
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
 import org.ovirt.engine.core.bll.lock.InMemoryLockManager;
 import org.ovirt.engine.core.common.action.RemoveDiskParameters;
 import org.ovirt.engine.core.common.businessentities.DiskImage;
@@ -29,7 +33,7 @@
 import org.ovirt.engine.core.utils.lock.LockManager;
 
 /** A test case for {@link RemoveDiskCommandTest} */
-@RunWith(MockitoJUnitRunner.class)
+@RunWith(Arquillian.class)
 public class RemoveDiskCommandTest {
 
     private LockManager lockManager = new InMemoryLockManager();
@@ -37,43 +41,61 @@
     @Rule
     public MockEJBStrategyRule ejbRule = new 
MockEJBStrategyRule(BeanType.LOCK_MANAGER, lockManager);
 
-    @Mock
+    //    @Inject
     private VmDAO vmDao;
 
-    @Mock
+    //    @Inject
     private VmDeviceDAO vmDeviceDao;
 
-    private RemoveDiskCommand<RemoveDiskParameters> cmd;
+    @Deployment
+    public static JavaArchive deploy() {
+        System.out.println("deploy");
+        return 
CommandBaseDependenciesTest.createDeployment(RemoveDiskCommandTest.class, 
MockDbFacade.class, MockConfig.class, RemoveDiskCommand.class);
+    }
+
+    public RemoveDiskCommandTest() {
+        System.out.println("ctor");
+
+    }
+
+    @Inject
+    private RemoveDiskCommand cmd;
     private DiskImage disk;
     private VM vm;
     private VmDevice vmDevice;
 
+    Guid diskId = Guid.newGuid();
+    Guid vmId = Guid.newGuid();
+    VmDeviceId vmDeviceId = new VmDeviceId(diskId, vmId);
+
+
     @Before
     public void setUp() {
-        Guid diskId = Guid.newGuid();
+        System.out.println("setup");
+
+//        cmd = spy(new RemoveDiskCommand<RemoveDiskParameters>(params));
+        cmd = spy(cmd);
+        
when(cmd.getVmDAO().getVmsListForDisk(diskId)).thenReturn(Collections.singletonList(vm));
+        when(cmd.getVmDeviceDAO().get(vmDeviceId)).thenReturn(vmDevice);
+
+        doReturn(disk).when(cmd).getDisk();
+    }
+
+    @Produces
+    public RemoveDiskParameters createParams() {
 
         disk = new DiskImage();
         disk.setId(diskId);
         disk.setVmEntityType(VmEntityType.VM);
 
-        Guid vmId = Guid.newGuid();
         vm = new VM();
         vm.setId(vmId);
 
-        VmDeviceId vmDeviceId = new VmDeviceId(diskId, vmId);
         vmDevice = new VmDevice();
         vmDevice.setId(vmDeviceId);
         vmDevice.setIsPlugged(true);
 
-        
when(vmDao.getVmsListForDisk(diskId)).thenReturn(Collections.singletonList(vm));
-        when(vmDeviceDao.get(vmDeviceId)).thenReturn(vmDevice);
-
-        RemoveDiskParameters params = new RemoveDiskParameters(diskId);
-
-        cmd = spy(new RemoveDiskCommand<RemoveDiskParameters>(params));
-        doReturn(disk).when(cmd).getDisk();
-        doReturn(vmDeviceDao).when(cmd).getVmDeviceDAO();
-        doReturn(vmDao).when(cmd).getVmDAO();
+        return new RemoveDiskParameters(diskId);
     }
 
     /* Tests for canDoAction() flow */
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
index 987ebb9..3c1c371 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/DbFacade.java
@@ -193,6 +193,7 @@
     public <T extends GenericDao<?, ?>> T getDaoForEntity(Class<? extends 
BusinessEntity<?>> entityClass) {
         @SuppressWarnings("unchecked")
         Class<T> daoType = (Class<T>) mapEntityToDao.get(entityClass);
+
         return getDao(daoType);
     }
 


-- 
To view, visit http://gerrit.ovirt.org/19173
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I733e926e2a07daa6d5c9dca6ff5020a8324590e6
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to