You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by al...@apache.org on 2012/08/07 20:39:57 UTC

[3/61] [abbrv] git commit: VPC: more unittests for VpcService

VPC: more unittests for VpcService

Conflicts:

	server/src/com/cloud/network/vpc/VpcManagerImpl.java


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

Branch: refs/heads/vpc
Commit: bda1e2d08d694ea3669a2af9dace952c0e0c3f53
Parents: d38e9ee
Author: Alena Prokharchyk <al...@citrix.com>
Authored: Mon Aug 6 23:27:39 2012 -0700
Committer: Alena Prokharchyk <al...@citrix.com>
Committed: Tue Aug 7 11:37:36 2012 -0700

----------------------------------------------------------------------
 api/src/com/cloud/network/vpc/VpcService.java      |    3 +-
 api/src/com/cloud/user/UserContext.java            |    3 +-
 server/src/com/cloud/network/NetworkVO.java        |    2 +-
 .../src/com/cloud/network/vpc/VpcManagerImpl.java  |   11 +-
 .../com/cloud/user/MockAccountManagerImpl.java     |    8 +-
 .../test/com/cloud/vm/MockUserVmManagerImpl.java   |   22 ++
 .../cloud/vpc/MockConfigurationManagerImpl.java    |   38 ++--
 .../test/com/cloud/vpc/MockNetworkManagerImpl.java |   62 ++++--
 server/test/com/cloud/vpc/VpcApiUnitTest.java      |  171 ++++++++++++--
 .../cloud/vpc/dao/MockConfigurationDaoImpl.java    |  106 +++++++++
 .../test/com/cloud/vpc/dao/MockNetworkDaoImpl.java |    6 +-
 .../cloud/vpc/dao/MockNetworkOfferingDaoImpl.java  |    7 +-
 .../dao/MockNetworkOfferingServiceMapDaoImpl.java  |    2 +-
 .../vpc/dao/MockNetworkServiceMapDaoImpl.java      |    4 +-
 server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java  |   43 ++++-
 .../com/cloud/vpc/dao/MockVpcOfferingDaoImpl.java  |   39 ++++
 .../vpc/dao/MockVpcOfferingServiceMapDao.java      |   17 --
 .../vpc/dao/MockVpcOfferingServiceMapDaoImpl.java  |   69 ++++++
 .../cloud/vpc/dao/MockVpcVirtualRouterElement.java |   26 +++
 19 files changed, 539 insertions(+), 100 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/api/src/com/cloud/network/vpc/VpcService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpc/VpcService.java b/api/src/com/cloud/network/vpc/VpcService.java
index 8457f46..7d8de55 100644
--- a/api/src/com/cloud/network/vpc/VpcService.java
+++ b/api/src/com/cloud/network/vpc/VpcService.java
@@ -78,7 +78,8 @@ public interface VpcService {
      * @return
      * @throws ResourceAllocationException TODO
      */
-    public Vpc createVpc(long zoneId, long vpcOffId, long vpcOwnerId, String vpcName, String displayText, String cidr, String networkDomain) throws ResourceAllocationException;
+    public Vpc createVpc(long zoneId, long vpcOffId, long vpcOwnerId, String vpcName, String displayText, String cidr,
+            String networkDomain) throws ResourceAllocationException;
 
     /**
      * @param vpcId

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/api/src/com/cloud/user/UserContext.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/user/UserContext.java b/api/src/com/cloud/user/UserContext.java
index b140728..aa4c639 100644
--- a/api/src/com/cloud/user/UserContext.java
+++ b/api/src/com/cloud/user/UserContext.java
@@ -16,13 +16,12 @@
 // under the License.
 package com.cloud.user;
 
-import com.cloud.server.ManagementService;
 import com.cloud.utils.component.ComponentLocator;
 
 public class UserContext {
 
     private static ThreadLocal<UserContext> s_currentContext = new ThreadLocal<UserContext>();
-    private static final ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
+    private static final ComponentLocator locator = ComponentLocator.getCurrentLocator();
     private static final AccountService _accountMgr = locator.getManager(AccountService.class);
 
     private long userId;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/src/com/cloud/network/NetworkVO.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkVO.java b/server/src/com/cloud/network/NetworkVO.java
index 5746d37..39dd66e 100644
--- a/server/src/com/cloud/network/NetworkVO.java
+++ b/server/src/com/cloud/network/NetworkVO.java
@@ -458,7 +458,7 @@ public class NetworkVO implements Network, Identity {
     @Override
     public String toString() {
         StringBuilder buf = new StringBuilder("Ntwk[");
-        buf.append(id).append("|").append(trafficType.toString()).append("|").append(networkOfferingId).append("]");
+        buf.append(id).append("|").append(trafficType).append("|").append(networkOfferingId).append("]");
         return buf.toString();
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index 1de5dbc..5c760da 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -636,6 +636,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
     @DB
     public boolean destroyVpc(Vpc vpc) throws ConcurrentOperationException, ResourceUnavailableException {
         UserContext ctx = UserContext.current();
+        s_logger.debug("Destroying vpc " + vpc);
         
         //don't allow to delete vpc if it's in use by existing networks
         int networksCount = _ntwkDao.getNetworkCountByVpcId(vpc.getId());
@@ -672,9 +673,10 @@ public class VpcManagerImpl implements VpcManager, Manager{
 
         //update the instance with removed flag only when the cleanup is executed successfully
         if (_vpcDao.remove(vpc.getId())) {
-            s_logger.debug("Vpc " + vpc + " is removed succesfully");
+            s_logger.debug("Vpc " + vpc + " is destroyed succesfully");
             return true;
         } else {
+            s_logger.warn("Vpc " + vpc + " failed to destroy");
             return false;
         }
     }
@@ -930,9 +932,10 @@ public class VpcManagerImpl implements VpcManager, Manager{
         _accountMgr.checkAccess(caller, null, false, vpc);
 
         //shutdown provider
+        s_logger.debug("Shutting down vpc " + vpc);
         boolean success = getVpcElement().shutdownVpc(vpc);
 
-        //TODO - cleanup all vpc resources here (ACLs, gateways, etc)
+        //TODO - shutdown all vpc resources here (ACLs, gateways, etc)
         if (success) {
             s_logger.debug("Vpc " + vpc + " has been shutdown succesfully");
         } else {
@@ -1074,6 +1077,10 @@ public class VpcManagerImpl implements VpcManager, Manager{
         if (vpcElement == null) {
             vpcElement = ((VpcProvider)_ntwkMgr.getElementImplementingProvider(Provider.VPCVirtualRouter.getName()));
         }
+
+        if (vpcElement == null) {
+            throw new CloudRuntimeException("Failed to initialize vpc element");
+        }
         
         return vpcElement;
     }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/user/MockAccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/user/MockAccountManagerImpl.java b/server/test/com/cloud/user/MockAccountManagerImpl.java
index 8f6d4fa..0d15cd7 100644
--- a/server/test/com/cloud/user/MockAccountManagerImpl.java
+++ b/server/test/com/cloud/user/MockAccountManagerImpl.java
@@ -43,7 +43,7 @@ import com.cloud.utils.db.SearchCriteria;
 
 
 @Local(value = { AccountManager.class, AccountService.class })
-public class MockAccountManagerImpl implements Manager, AccountManager {
+public class MockAccountManagerImpl implements Manager, AccountManager, AccountService {
 
 
     @Override
@@ -102,14 +102,12 @@ public class MockAccountManagerImpl implements Manager, AccountManager {
 
     @Override
     public Account getSystemAccount() {
-        // TODO Auto-generated method stub
-        return null;
+        return new AccountVO();
     }
 
     @Override
     public User getSystemUser() {
-        // TODO Auto-generated method stub
-        return null;
+        return new UserVO();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vm/MockUserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vm/MockUserVmManagerImpl.java b/server/test/com/cloud/vm/MockUserVmManagerImpl.java
index 62db70c..e890262 100644
--- a/server/test/com/cloud/vm/MockUserVmManagerImpl.java
+++ b/server/test/com/cloud/vm/MockUserVmManagerImpl.java
@@ -25,6 +25,8 @@ import javax.naming.ConfigurationException;
 
 import com.cloud.agent.api.StopAnswer;
 import com.cloud.agent.api.VmStatsEntry;
+import com.cloud.agent.api.to.NicTO;
+import com.cloud.agent.api.to.VirtualMachineTO;
 import com.cloud.agent.manager.Commands;
 import com.cloud.api.commands.AssignVMCmd;
 import com.cloud.api.commands.AttachVolumeCmd;
@@ -53,6 +55,7 @@ import com.cloud.exception.StorageUnavailableException;
 import com.cloud.exception.VirtualMachineMigrationException;
 import com.cloud.host.Host;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.network.Network;
 import com.cloud.offering.ServiceOffering;
 import com.cloud.projects.Project.ListProjectResourcesCriteria;
 import com.cloud.server.Criteria;
@@ -423,4 +426,23 @@ public class MockUserVmManagerImpl implements UserVmManager, UserVmService, Mana
 		
 	}
 
+    /* (non-Javadoc)
+     * @see com.cloud.vm.VirtualMachineGuru#plugNic(com.cloud.network.Network, com.cloud.agent.api.to.NicTO, com.cloud.agent.api.to.VirtualMachineTO, com.cloud.vm.ReservationContext, com.cloud.deploy.DeployDestination)
+     */
+    @Override
+    public boolean plugNic(Network network, NicTO nic, VirtualMachineTO vm, ReservationContext context, DeployDestination dest) throws ConcurrentOperationException, ResourceUnavailableException,
+            InsufficientCapacityException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.vm.VirtualMachineGuru#unplugNic(com.cloud.network.Network, com.cloud.agent.api.to.NicTO, com.cloud.agent.api.to.VirtualMachineTO, com.cloud.vm.ReservationContext, com.cloud.deploy.DeployDestination)
+     */
+    @Override
+    public boolean unplugNic(Network network, NicTO nic, VirtualMachineTO vm, ReservationContext context, DeployDestination dest) throws ConcurrentOperationException, ResourceUnavailableException {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java b/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
index 855942a..8841483 100644
--- a/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockConfigurationManagerImpl.java
@@ -422,15 +422,6 @@ public class MockConfigurationManagerImpl implements ConfigurationManager, Confi
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.configuration.ConfigurationManager#createDiskOffering(java.lang.Long, java.lang.String, java.lang.String, java.lang.Long, java.lang.String, boolean, boolean)
-     */
-    @Override
-    public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized, boolean localStorageRequired) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
      * @see com.cloud.configuration.ConfigurationManager#createPod(long, java.lang.String, long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)
      */
     @Override
@@ -440,16 +431,6 @@ public class MockConfigurationManagerImpl implements ConfigurationManager, Confi
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.configuration.ConfigurationManager#createZone(long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Long, com.cloud.dc.DataCenter.NetworkType, java.lang.String, java.lang.String, boolean, boolean)
-     */
-    @Override
-    public DataCenterVO createZone(long userId, String zoneName, String dns1, String dns2, String internalDns1, String internalDns2, String guestCidr, String domain, Long domainId, NetworkType zoneType,
-            String allocationState, String networkDomain, boolean isSecurityGroupEnabled, boolean isLocalStorageEnabled) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
      * @see com.cloud.configuration.ConfigurationManager#deleteVlanAndPublicIpRange(long, long, com.cloud.user.Account)
      */
     @Override
@@ -596,4 +577,23 @@ public class MockConfigurationManagerImpl implements ConfigurationManager, Confi
         return null;
     }
 
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.ConfigurationManager#createDiskOffering(java.lang.Long, java.lang.String, java.lang.String, java.lang.Long, java.lang.String, boolean)
+     */
+    @Override
+    public DiskOfferingVO createDiskOffering(Long domainId, String name, String description, Long numGibibytes, String tags, boolean isCustomized) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.ConfigurationManager#createZone(long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.Long, com.cloud.dc.DataCenter.NetworkType, java.lang.String, java.lang.String, boolean)
+     */
+    @Override
+    public DataCenterVO createZone(long userId, String zoneName, String dns1, String dns2, String internalDns1, String internalDns2, String guestCidr, String domain, Long domainId, NetworkType zoneType,
+            String allocationState, String networkDomain, boolean isSecurityGroupEnabled) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
index 14702b2..f6ad27b 100644
--- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java
@@ -13,6 +13,7 @@
 package com.cloud.vpc;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -20,6 +21,8 @@ import java.util.Set;
 import javax.ejb.Local;
 import javax.naming.ConfigurationException;
 
+import org.apache.log4j.Logger;
+
 import com.cloud.acl.ControlledEntity.ACLType;
 import com.cloud.api.commands.CreateNetworkCmd;
 import com.cloud.api.commands.ListNetworksCmd;
@@ -70,6 +73,7 @@ import com.cloud.offerings.dao.NetworkOfferingServiceMapDao;
 import com.cloud.user.Account;
 import com.cloud.user.User;
 import com.cloud.utils.Pair;
+import com.cloud.utils.component.Adapters;
 import com.cloud.utils.component.Inject;
 import com.cloud.utils.component.Manager;
 import com.cloud.vm.Nic;
@@ -79,6 +83,7 @@ import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.VirtualMachineProfileImpl;
+import com.cloud.vpc.dao.MockVpcVirtualRouterElement;
 
 @Local(value = { NetworkManager.class, NetworkService.class })
 public class MockNetworkManagerImpl implements NetworkManager, Manager{
@@ -86,6 +91,12 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
     NetworkServiceMapDao  _ntwkSrvcDao;
     @Inject
     NetworkOfferingServiceMapDao  _ntwkOfferingSrvcDao;
+    @Inject(adapter = NetworkElement.class)
+    Adapters<NetworkElement> _networkElements;
+    
+    private static HashMap<String, String> s_providerToNetworkElementMap = new HashMap<String, String>();
+    private static final Logger s_logger = Logger.getLogger(MockNetworkManagerImpl.class);
+
 
     /* (non-Javadoc)
      * @see com.cloud.network.NetworkService#getIsolatedNetworksOwnedByAccountInZone(long, com.cloud.user.Account)
@@ -97,15 +108,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#allocateIP(com.cloud.user.Account, long)
-     */
-    @Override
-    public IpAddress allocateIP(Account ipOwner, long zoneId) throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
      * @see com.cloud.network.NetworkService#releaseIpAddress(long)
      */
     @Override
@@ -1163,15 +1165,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#checkVirtualNetworkCidrOverlap(java.lang.Long, java.lang.String)
-     */
-    @Override
-    public void checkVirtualNetworkCidrOverlap(Long zoneId, String cidr) {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
      * @see com.cloud.network.NetworkManager#checkCapabilityForProvider(java.util.Set, com.cloud.network.Network.Service, com.cloud.network.Network.Capability, java.lang.String)
      */
     @Override
@@ -1267,8 +1260,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
      */
     @Override
     public NetworkElement getElementImplementingProvider(String providerName) {
-        // TODO Auto-generated method stub
-        return null;
+        return new MockVpcVirtualRouterElement();
     }
 
     /* (non-Javadoc)
@@ -1451,7 +1443,17 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
      */
     @Override
     public boolean start() {
-        // TODO Auto-generated method stub
+        for (NetworkElement element : _networkElements) {
+            Provider implementedProvider = element.getProvider();
+            if (implementedProvider != null) {
+                if (s_providerToNetworkElementMap.containsKey(implementedProvider.getName())) {
+                    s_logger.error("Cannot start MapNetworkManager: Provider <-> NetworkElement must be a one-to-one map, " +
+                            "multiple NetworkElements found for Provider: " + implementedProvider.getName());
+                    return false;
+                }
+                s_providerToNetworkElementMap.put(implementedProvider.getName(), element.getName());
+            }
+        }
         return true;
     }
 
@@ -1473,4 +1475,22 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager{
         return null;
     }
 
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkService#allocateIP(com.cloud.user.Account, boolean, long)
+     */
+    @Override
+    public IpAddress allocateIP(Account ipOwner, boolean isSystem, long zoneId) throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkManager#translateZoneIdToPhysicalNetwork(long)
+     */
+    @Override
+    public PhysicalNetwork translateZoneIdToPhysicalNetwork(long zoneId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/VpcApiUnitTest.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/VpcApiUnitTest.java b/server/test/com/cloud/vpc/VpcApiUnitTest.java
index a7500bc..1d8dd71 100644
--- a/server/test/com/cloud/vpc/VpcApiUnitTest.java
+++ b/server/test/com/cloud/vpc/VpcApiUnitTest.java
@@ -12,6 +12,9 @@
 // Automatically generated by addcopyright.py at 04/03/2012
 package com.cloud.vpc;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import junit.framework.TestCase;
 
 import org.apache.log4j.Logger;
@@ -21,17 +24,19 @@ import com.cloud.configuration.dao.ConfigurationDaoImpl;
 import com.cloud.configuration.dao.ResourceCountDaoImpl;
 import com.cloud.dc.dao.VlanDaoImpl;
 import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.network.Network.Service;
 import com.cloud.network.dao.FirewallRulesDaoImpl;
 import com.cloud.network.dao.IPAddressDaoImpl;
-import com.cloud.network.dao.NetworkDaoImpl;
 import com.cloud.network.dao.PhysicalNetworkDaoImpl;
+import com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl;
+import com.cloud.network.vpc.Vpc;
 import com.cloud.network.vpc.VpcManager;
 import com.cloud.network.vpc.VpcManagerImpl;
 import com.cloud.network.vpc.Dao.PrivateIpDaoImpl;
 import com.cloud.network.vpc.Dao.StaticRouteDaoImpl;
 import com.cloud.network.vpc.Dao.VpcGatewayDaoImpl;
 import com.cloud.network.vpc.Dao.VpcOfferingDaoImpl;
-import com.cloud.network.vpc.Dao.VpcOfferingServiceMapDaoImpl;
+import com.cloud.server.ManagementService;
 import com.cloud.tags.dao.ResourceTagsDaoImpl;
 import com.cloud.user.AccountVO;
 import com.cloud.user.MockAccountManagerImpl;
@@ -39,10 +44,13 @@ import com.cloud.user.dao.AccountDaoImpl;
 import com.cloud.utils.component.ComponentLocator;
 import com.cloud.utils.component.MockComponentLocator;
 import com.cloud.vm.dao.DomainRouterDaoImpl;
+import com.cloud.vpc.dao.MockNetworkDaoImpl;
 import com.cloud.vpc.dao.MockNetworkOfferingDaoImpl;
 import com.cloud.vpc.dao.MockNetworkOfferingServiceMapDaoImpl;
 import com.cloud.vpc.dao.MockNetworkServiceMapDaoImpl;
 import com.cloud.vpc.dao.MockVpcDaoImpl;
+import com.cloud.vpc.dao.MockVpcOfferingDaoImpl;
+import com.cloud.vpc.dao.MockVpcOfferingServiceMapDaoImpl;
 
 public class VpcApiUnitTest extends TestCase{
     private static final Logger s_logger = Logger.getLogger(VpcApiUnitTest.class);
@@ -52,19 +60,18 @@ public class VpcApiUnitTest extends TestCase{
     @Override
     @Before
     public void setUp() throws Exception {
-        _locator = new MockComponentLocator("management-server");
+        _locator = new MockComponentLocator(ManagementService.Name);
         _locator.addDao("VpcDao", MockVpcDaoImpl.class);
         _locator.addDao("VpcOfferingDao", VpcOfferingDaoImpl.class);
-        _locator.addDao("VpcOfferingServiceMapDao", VpcOfferingServiceMapDaoImpl.class);
-        _locator.addDao("ConfigDao", ConfigurationDaoImpl.class);
-        _locator.addDao("NetworkDao", NetworkDaoImpl.class);
+        _locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class);
+        _locator.addDao("NetworkDao", MockNetworkDaoImpl.class);
         _locator.addDao("IPAddressDao", IPAddressDaoImpl.class);
         _locator.addDao("DomainRouterDao", DomainRouterDaoImpl.class);
-        _locator.addDao("_vpcGatewayDao", VpcGatewayDaoImpl.class);
+        _locator.addDao("VpcGatewayDao", VpcGatewayDaoImpl.class);
         _locator.addDao("PrivateIpDao", PrivateIpDaoImpl.class);
         _locator.addDao("StaticRouteDao", StaticRouteDaoImpl.class);
         _locator.addDao("NetworkOfferingServiceMapDao", MockNetworkOfferingServiceMapDaoImpl.class);
-        _locator.addDao("VpcOfferingServiceMapDao", VpcOfferingServiceMapDaoImpl.class);
+        _locator.addDao("VpcOfferingServiceMapDao", MockVpcOfferingServiceMapDaoImpl.class);
         _locator.addDao("PhysicalNetworkDao", PhysicalNetworkDaoImpl.class);
         _locator.addDao("ResourceTagDao", ResourceTagsDaoImpl.class);
         _locator.addDao("FirewallRulesDao", FirewallRulesDaoImpl.class);
@@ -73,32 +80,133 @@ public class VpcApiUnitTest extends TestCase{
         _locator.addDao("ResourceCountDao", ResourceCountDaoImpl.class);
         _locator.addDao("NetworkOfferingDao", MockNetworkOfferingDaoImpl.class);
         _locator.addDao("NetworkServiceMapDao", MockNetworkServiceMapDaoImpl.class);
-
+        _locator.addDao("VpcOfferingDao", MockVpcOfferingDaoImpl.class);
+        _locator.addDao("Site2SiteVpnDao", Site2SiteVpnGatewayDaoImpl.class);
         
+        _locator.addManager("ConfigService", MockConfigurationManagerImpl.class);
         _locator.addManager("vpc manager", VpcManagerImpl.class);
         _locator.addManager("account manager", MockAccountManagerImpl.class);
         _locator.addManager("network manager", MockNetworkManagerImpl.class);
         _locator.addManager("Site2SiteVpnManager", MockSite2SiteVpnManagerImpl.class);
         _locator.addManager("ResourceLimitService", MockResourceLimitManagerImpl.class);
-        _locator.addManager("ConfigService", MockConfigurationManagerImpl.class);
+        
         _locator.makeActive(null);
         
         _vpcService = ComponentLocator.inject(VpcManagerImpl.class);
     }
     
     public void test() {
+        s_logger.debug("Starting test for VpcService interface");
+        //Vpc service methods
+        getActiveVpc();
+        deleteVpc();
+        
+        //Vpc manager methods
+        validateNtwkOffForVpc();
+        //destroyVpc();
+       
+    }
+    
+    protected void deleteVpc() {
+        //delete existing offering
+        boolean result = false;
+        String msg = null;
+        try {
+            List<String> svcs = new ArrayList<String>();
+            svcs.add(Service.SourceNat.getName());
+            result = _vpcService.deleteVpc(1);
+        }  catch (Exception ex) {
+            msg = ex.getMessage();
+        } finally {
+            if (result) {
+                s_logger.debug("Delete vpc: Test passed, vpc is deleted");
+            } else {
+                s_logger.error("Delete vpc: TEST FAILED, vpc failed to delete " + msg);
+            }
+        }
+        
+        //delete non-existing offering
+        result = false;
+        msg = null;
+        try {
+            List<String> svcs = new ArrayList<String>();
+            svcs.add(Service.SourceNat.getName());
+            result = _vpcService.deleteVpc(100);
+        }  catch (Exception ex) {
+            msg = ex.getMessage();
+        } finally {
+            if (!result) {
+                s_logger.debug("Delete vpc: Test passed, non existing vpc failed to delete ");
+            } else {
+                s_logger.error("Delete vpc: TEST FAILED, true is returned when try to delete non existing vpc");
+            }
+        }
+    }
+    
+    protected void getActiveVpc() {
+        //test for active vpc
+        boolean result = false;
+        String msg = null;
+        Vpc vpc = null;
+        try {
+            List<String> svcs = new ArrayList<String>();
+            svcs.add(Service.SourceNat.getName());
+            vpc = _vpcService.getActiveVpc(1);
+            if (vpc != null) {
+                result = true;
+            }
+        }  catch (Exception ex) {
+            msg = ex.getMessage();
+        } finally {
+            if (result) {
+                s_logger.debug("Get active Vpc: Test passed, active vpc is returned");
+            } else {
+                s_logger.error("Get active Vpc: TEST FAILED, active vpc is not returned " + msg);
+            }
+        }
+        
+        //test for inactive vpc
+        result = false;
+        msg = null;
+        vpc = null;
+        try {
+            List<String> svcs = new ArrayList<String>();
+            svcs.add(Service.SourceNat.getName());
+            vpc = _vpcService.getActiveVpc(2);
+            if (vpc != null) {
+                result = true;
+            }
+        }  catch (Exception ex) {
+            msg = ex.getMessage();
+        } finally {
+            if (!result) {
+                s_logger.debug("Get active Vpc: Test passed, no vpc is returned");
+            } else {
+                s_logger.error("Get active Vpc: TEST FAILED, non active vpc is returned");
+            }
+        }
+    }
+    
+    protected void destroyVpc() {
+        try {
+            _vpcService.destroyVpc(_vpcService.getVpc(1));
+        } catch (Exception ex) {
+            s_logger.error("Destroy VPC TEST FAILED due to exc ", ex);
+        }
+    }
+
+    protected void validateNtwkOffForVpc() {
         //validate network offering
         //1) correct network offering
         boolean result = false;
         try {
             _vpcService.validateNtkwOffForVpc(1, "0.0.0.0", "111-", new AccountVO(), _vpcService.getVpc(1), 2L, "10.1.1.1");
             result = true;
-            s_logger.debug("Test passed: the offering is valid for vpc creation");
+            s_logger.debug("Validate network offering: Test passed: the offering is valid for vpc creation");
         } catch (Exception ex) {
-            s_logger.warn("TEST FAILED due to exc ", ex);
+            s_logger.error("Validate network offering: TEST FAILED due to exc ", ex);
         }
         
-        
         //2) invalid offering - source nat is not included
         result = false;
         String msg = null;
@@ -109,9 +217,9 @@ public class VpcApiUnitTest extends TestCase{
             msg = ex.getMessage();
         } finally {
             if (!result) {
-                s_logger.debug("Test passed: "  + msg);
+                s_logger.debug("Validate network offering: Test passed: "  + msg);
             } else {
-                s_logger.warn("TEST FAILED, can't use network offering without SourceNat service");
+                s_logger.error("Validate network offering: TEST FAILED, can't use network offering without SourceNat service");
             }
         }
         
@@ -125,9 +233,9 @@ public class VpcApiUnitTest extends TestCase{
             msg = ex.getMessage();
         } finally {
             if (!result) {
-                s_logger.debug("Test passed: " + msg);
+                s_logger.debug("Validate network offering: Test passed: " + msg);
             } else {
-                s_logger.warn("TEST FAILED, can't use network offering without conserve mode = true");
+                s_logger.error("Validate network offering: TEST FAILED, can't use network offering without conserve mode = true");
             }
         }
         
@@ -140,13 +248,14 @@ public class VpcApiUnitTest extends TestCase{
             msg = ex.getMessage();
         } finally {
             if (!result) {
-                s_logger.debug("Test passed: " + msg);
+                s_logger.debug("Validate network offering: Test passed: " + msg);
             } else {
-                s_logger.warn("TEST FAILED, can't use network offering with guest type = Shared");
+                s_logger.error("Validate network offering: TEST FAILED, can't use network offering with guest type = Shared");
             }
         }
         
-        //5) Invalid offering - no redundant router supportresult = false;
+        //5) Invalid offering - no redundant router support
+        result = false;
         try {
             _vpcService.validateNtkwOffForVpc(5, "0.0.0.0", "111-", new AccountVO(), _vpcService.getVpc(1), 2L, "10.1.1.1");
             result = true;
@@ -154,15 +263,27 @@ public class VpcApiUnitTest extends TestCase{
             msg = ex.getMessage();
         } finally {
             if (!result) {
-                s_logger.debug("Test passed: " + msg);
+                s_logger.debug("Validate network offering: Test passed: " + msg);
             } else {
-                s_logger.warn("TEST FAILED, can't use network offering with guest type = Shared");
+                s_logger.error("TEST FAILED, can't use network offering with guest type = Shared");
             }
         }
         
-        //6) Only one network in the VPC can support LB service - positive scenario
-        
-        //7) Only one netowrk in the VPC can support LB service - negative scenario
+        //6) Only one network in the VPC can support LB service - negative scenario
+        result = false;
+        try {
+            _vpcService.validateNtkwOffForVpc(6, "0.0.0.0", "111-", new AccountVO(), _vpcService.getVpc(1), 2L, "10.1.1.1");
+            result = true;
+            s_logger.debug("Validate network offering: Test passed: the offering is valid for vpc creation");
+        } catch (InvalidParameterValueException ex) {
+            msg = ex.getMessage();
+        } finally {
+            if (!result) {
+                s_logger.debug("Test passed: " + msg);
+            } else {
+                s_logger.error("Validate network offering: TEST FAILED, can't use network offering with guest type = Shared");
+            }
+        }
     }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockConfigurationDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockConfigurationDaoImpl.java b/server/test/com/cloud/vpc/dao/MockConfigurationDaoImpl.java
new file mode 100644
index 0000000..0cac4b9
--- /dev/null
+++ b/server/test/com/cloud/vpc/dao/MockConfigurationDaoImpl.java
@@ -0,0 +1,106 @@
+// Copyright 2012 Citrix Systems, Inc. Licensed under the
+// Apache License, Version 2.0 (the "License"); you may not use this
+// file except in compliance with the License.  Citrix Systems, Inc.
+// reserves all rights not expressly granted by the License.
+// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// 
+// Automatically generated by addcopyright.py at 04/03/2012
+package com.cloud.vpc.dao;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.ejb.Local;
+
+import com.cloud.configuration.ConfigurationVO;
+import com.cloud.configuration.dao.ConfigurationDao;
+import com.cloud.utils.db.GenericDaoBase;
+
+@Local(value={ConfigurationDao.class})
+public class MockConfigurationDaoImpl  extends GenericDaoBase<ConfigurationVO, String> implements ConfigurationDao{
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#getConfiguration(java.lang.String, java.util.Map)
+     */
+    @Override
+    public Map<String, String> getConfiguration(String instance, Map<String, ? extends Object> params) {
+        return new HashMap<String, String>();
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#getConfiguration(java.util.Map)
+     */
+    @Override
+    public Map<String, String> getConfiguration(Map<String, ? extends Object> params) {
+        return new HashMap<String, String>();
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#getConfiguration()
+     */
+    @Override
+    public Map<String, String> getConfiguration() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#update(java.lang.String, java.lang.String)
+     */
+    @Override
+    public boolean update(String name, String value) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#getValue(java.lang.String)
+     */
+    @Override
+    public String getValue(String name) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#getValueAndInitIfNotExist(java.lang.String, java.lang.String, java.lang.String)
+     */
+    @Override
+    public String getValueAndInitIfNotExist(String name, String category, String initValue) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#isPremium()
+     */
+    @Override
+    public boolean isPremium() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#findByName(java.lang.String)
+     */
+    @Override
+    public ConfigurationVO findByName(String name) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.configuration.dao.ConfigurationDao#update(java.lang.String, java.lang.String, java.lang.String)
+     */
+    @Override
+    public boolean update(String name, String category, String value) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java b/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
index 0038403..970a5d9 100644
--- a/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockNetworkDaoImpl.java
@@ -12,6 +12,7 @@
 // Automatically generated by addcopyright.py at 04/03/2012
 package com.cloud.vpc.dao;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -314,8 +315,9 @@ public class MockNetworkDaoImpl extends GenericDaoBase<NetworkVO, Long> implemen
      */
     @Override
     public List<NetworkVO> listByVpc(long vpcId) {
-        // TODO Auto-generated method stub
-        return null;
+        List<NetworkVO> networks = new ArrayList<NetworkVO>();
+        networks.add(new NetworkVO());
+        return networks;
     }
 
     /* (non-Javadoc)

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockNetworkOfferingDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockNetworkOfferingDaoImpl.java b/server/test/com/cloud/vpc/dao/MockNetworkOfferingDaoImpl.java
index 833bbd9..dfeadf6 100644
--- a/server/test/com/cloud/vpc/dao/MockNetworkOfferingDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockNetworkOfferingDaoImpl.java
@@ -35,7 +35,6 @@ import com.cloud.utils.db.GenericDaoBase;
 public class MockNetworkOfferingDaoImpl extends GenericDaoBase<NetworkOfferingVO, Long> implements NetworkOfferingDao {
     private static final Logger s_logger = Logger.getLogger(MockNetworkOfferingDaoImpl.class);
 
-
     /* (non-Javadoc)
      * @see com.cloud.offerings.dao.NetworkOfferingDao#findByUniqueName(java.lang.String)
      */
@@ -111,10 +110,14 @@ public class MockNetworkOfferingDaoImpl extends GenericDaoBase<NetworkOfferingVO
             vo = new NetworkOfferingVO("non vpc", "non vpc", TrafficType.Guest, false, true, null, null, false,
                     Availability.Optional, null, Network.GuestType.Shared, false, false);
         } else if (id.longValue() == 5) {
-            //network offering invalid for vpc (Shared)
+            //network offering invalid for vpc (has redundant router)
             vo = new NetworkOfferingVO("vpc", "vpc", TrafficType.Guest, false, true, null, null, false,
                     Availability.Optional, null, Network.GuestType.Isolated, false, false);
             vo.setRedundantRouter(true);
+        } else if (id.longValue() == 6) {
+            //network offering invalid for vpc (has lb service)   
+            vo = new NetworkOfferingVO("vpc", "vpc", TrafficType.Guest, false, true, null, null, false,
+                    Availability.Optional, null, Network.GuestType.Isolated, false, false);
         }
         
         if (vo != null) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockNetworkOfferingServiceMapDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockNetworkOfferingServiceMapDaoImpl.java b/server/test/com/cloud/vpc/dao/MockNetworkOfferingServiceMapDaoImpl.java
index ac91359..2e388c2 100644
--- a/server/test/com/cloud/vpc/dao/MockNetworkOfferingServiceMapDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockNetworkOfferingServiceMapDaoImpl.java
@@ -27,7 +27,7 @@ public class MockNetworkOfferingServiceMapDaoImpl extends NetworkOfferingService
     public boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service... services) {
         if (services.length > 0 && services[0] == Service.SourceNat && networkOfferingId != 2) {
             return true;
-        } else if (services.length > 0 && services[0] == Service.Lb && networkOfferingId != 2) {
+        } else if (services.length > 0 && services[0] == Service.Lb && networkOfferingId == 6) {
             return true;
         }
         return false;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockNetworkServiceMapDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockNetworkServiceMapDaoImpl.java b/server/test/com/cloud/vpc/dao/MockNetworkServiceMapDaoImpl.java
index c4ac17d..e66aa5b 100644
--- a/server/test/com/cloud/vpc/dao/MockNetworkServiceMapDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockNetworkServiceMapDaoImpl.java
@@ -32,7 +32,9 @@ public class MockNetworkServiceMapDaoImpl extends GenericDaoBase<NetworkServiceM
      */
     @Override
     public boolean areServicesSupportedInNetwork(long networkId, Service... services) {
-        // TODO Auto-generated method stub
+        if (services.length > 0 && services[0] == Service.Lb) {
+            return true;
+        }
         return false;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java b/server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java
index c8df522..7579ff7 100644
--- a/server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java
+++ b/server/test/com/cloud/vpc/dao/MockVpcDaoImpl.java
@@ -12,11 +12,15 @@
 // Automatically generated by addcopyright.py at 04/03/2012
 package com.cloud.vpc.dao;
 
+import java.lang.reflect.Field;
 import java.util.List;
 
 import javax.ejb.Local;
 
+import org.apache.log4j.Logger;
+
 import com.cloud.network.vpc.Vpc;
+import com.cloud.network.vpc.Vpc.State;
 import com.cloud.network.vpc.VpcVO;
 import com.cloud.network.vpc.Dao.VpcDao;
 import com.cloud.utils.db.DB;
@@ -25,6 +29,8 @@ import com.cloud.utils.db.GenericDaoBase;
 @Local(value = VpcDao.class)
 @DB(txn = false)
 public class MockVpcDaoImpl extends GenericDaoBase<VpcVO, Long> implements VpcDao{
+    private static final Logger s_logger = Logger.getLogger(MockNetworkOfferingDaoImpl.class);
+
 
     /* (non-Javadoc)
      * @see com.cloud.network.vpc.Dao.VpcDao#getVpcCountByOfferingId(long)
@@ -39,7 +45,11 @@ public class MockVpcDaoImpl extends GenericDaoBase<VpcVO, Long> implements VpcDa
      */
     @Override
     public Vpc getActiveVpcById(long vpcId) {
-        // TODO Auto-generated method stub
+        Vpc vpc = findById(vpcId);
+        if (vpc != null && vpc.getState() == Vpc.State.Enabled) {
+            return vpc;
+        }
+        
         return null;
     }
 
@@ -77,9 +87,40 @@ public class MockVpcDaoImpl extends GenericDaoBase<VpcVO, Long> implements VpcDa
             vo = new VpcVO(1, "new vpc", "new vpc", 1,1 , 1, "0.0.0.0/0", "vpc domain");
         } else if (id.longValue() == 2) {
             vo = new VpcVO(1, "new vpc", "new vpc", 1,1 , 1, "0.0.0.0/0", "vpc domain");
+            vo.setState(State.Inactive);
         }
         
+        vo = setId(vo, id);
+        
         return vo;
     }
+    
+    private VpcVO setId(VpcVO vo, long id) {
+        VpcVO voToReturn = vo;
+        Class<?> c = voToReturn.getClass();
+        try {
+            Field f = c.getDeclaredField("id");
+            f.setAccessible(true);
+            f.setLong(voToReturn, id);
+        } catch (NoSuchFieldException ex) {
+           s_logger.warn(ex);
+           return null;
+        } catch (IllegalAccessException ex) {
+            s_logger.warn(ex);
+            return null;
+        }
+        
+        return voToReturn;
+    }
+    
+    @Override
+    public boolean remove(Long id) {
+        return true;
+    }
+    
+    @Override
+    public boolean update(Long id, VpcVO vo) {
+        return true;
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockVpcOfferingDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockVpcOfferingDaoImpl.java b/server/test/com/cloud/vpc/dao/MockVpcOfferingDaoImpl.java
new file mode 100644
index 0000000..52acf82
--- /dev/null
+++ b/server/test/com/cloud/vpc/dao/MockVpcOfferingDaoImpl.java
@@ -0,0 +1,39 @@
+// Copyright 2012 Citrix Systems, Inc. Licensed under the
+// Apache License, Version 2.0 (the "License"); you may not use this
+// file except in compliance with the License.  Citrix Systems, Inc.
+// reserves all rights not expressly granted by the License.
+// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// 
+// Automatically generated by addcopyright.py at 04/03/2012
+package com.cloud.vpc.dao;
+
+import javax.ejb.Local;
+
+import com.cloud.network.vpc.VpcOfferingVO;
+import com.cloud.network.vpc.Dao.VpcOfferingDao;
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.GenericDaoBase;
+
+@Local(value = VpcOfferingDao.class)
+@DB(txn = false)
+public class MockVpcOfferingDaoImpl extends GenericDaoBase<VpcOfferingVO, Long> implements VpcOfferingDao{
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.vpc.Dao.VpcOfferingDao#findByUniqueName(java.lang.String)
+     */
+    @Override
+    public VpcOfferingVO findByUniqueName(String uniqueName) {
+        return new VpcOfferingVO();
+    }
+    
+    @Override
+    public VpcOfferingVO persist(VpcOfferingVO vo) {
+        return vo;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDao.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDao.java b/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDao.java
deleted file mode 100644
index a06c4db..0000000
--- a/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDao.java
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2012 Citrix Systems, Inc. Licensed under the
-// Apache License, Version 2.0 (the "License"); you may not use this
-// file except in compliance with the License.  Citrix Systems, Inc.
-// reserves all rights not expressly granted by the License.
-// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-// 
-// Automatically generated by addcopyright.py at 04/03/2012
-package com.cloud.vpc.dao;
-
-public class MockVpcOfferingServiceMapDao {
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDaoImpl.java b/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDaoImpl.java
new file mode 100644
index 0000000..3677a16
--- /dev/null
+++ b/server/test/com/cloud/vpc/dao/MockVpcOfferingServiceMapDaoImpl.java
@@ -0,0 +1,69 @@
+// Copyright 2012 Citrix Systems, Inc. Licensed under the
+// Apache License, Version 2.0 (the "License"); you may not use this
+// file except in compliance with the License.  Citrix Systems, Inc.
+// reserves all rights not expressly granted by the License.
+// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// 
+// Automatically generated by addcopyright.py at 04/03/2012
+package com.cloud.vpc.dao;
+
+import java.util.List;
+
+import javax.ejb.Local;
+
+import com.cloud.network.Network.Service;
+import com.cloud.network.vpc.VpcOfferingServiceMapVO;
+import com.cloud.network.vpc.Dao.VpcOfferingServiceMapDao;
+import com.cloud.utils.db.DB;
+import com.cloud.utils.db.GenericDaoBase;
+
+@Local(value = VpcOfferingServiceMapDao.class)
+@DB(txn = false)
+public class MockVpcOfferingServiceMapDaoImpl extends GenericDaoBase<VpcOfferingServiceMapVO, Long> implements VpcOfferingServiceMapDao{
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.vpc.Dao.VpcOfferingServiceMapDao#listByVpcOffId(long)
+     */
+    @Override
+    public List<VpcOfferingServiceMapVO> listByVpcOffId(long vpcOffId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.vpc.Dao.VpcOfferingServiceMapDao#areServicesSupportedByNetworkOffering(long, com.cloud.network.Network.Service[])
+     */
+    @Override
+    public boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service[] services) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.vpc.Dao.VpcOfferingServiceMapDao#listServicesForVpcOffering(long)
+     */
+    @Override
+    public List<String> listServicesForVpcOffering(long vpcOfferingId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.vpc.Dao.VpcOfferingServiceMapDao#findByServiceProviderAndOfferingId(java.lang.String, java.lang.String, long)
+     */
+    @Override
+    public VpcOfferingServiceMapVO findByServiceProviderAndOfferingId(String service, String provider, long vpcOfferingId) {
+        return new VpcOfferingServiceMapVO();
+    }
+    
+    @Override
+    public VpcOfferingServiceMapVO persist (VpcOfferingServiceMapVO vo) {
+        return vo;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/bda1e2d0/server/test/com/cloud/vpc/dao/MockVpcVirtualRouterElement.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/dao/MockVpcVirtualRouterElement.java b/server/test/com/cloud/vpc/dao/MockVpcVirtualRouterElement.java
new file mode 100644
index 0000000..91cfb99
--- /dev/null
+++ b/server/test/com/cloud/vpc/dao/MockVpcVirtualRouterElement.java
@@ -0,0 +1,26 @@
+// Copyright 2012 Citrix Systems, Inc. Licensed under the
+// Apache License, Version 2.0 (the "License"); you may not use this
+// file except in compliance with the License.  Citrix Systems, Inc.
+// reserves all rights not expressly granted by the License.
+// You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+// 
+// Automatically generated by addcopyright.py at 04/03/2012
+package com.cloud.vpc.dao;
+
+import com.cloud.exception.ConcurrentOperationException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.element.VpcVirtualRouterElement;
+import com.cloud.network.vpc.Vpc;
+
+public class MockVpcVirtualRouterElement extends VpcVirtualRouterElement{
+    @Override
+    public boolean shutdownVpc(Vpc vpc) throws ConcurrentOperationException, ResourceUnavailableException {
+        return true;
+    }
+    
+}