cloudstack/server/test/com/cloud/vm/dao/UserVmCloneSettingDaoImplTest.java
frank cd291f6b4b From c72615de97b007517fb324044cb4625258c5fc61 Mon Sep 17 00:00:00 2001
From: Vijayendra <vijayendra.bhamidipati@citrix.com>
Date: Mon, 25 Feb 2013 14:37:27 -0800
Subject: [PATCH] CS-670: Configurable setting to use linked clones or not on
 VMware

Description:

  Providing support for creation of user VMs as full clones on ESX.
  Putting in unit tests for VO and Dao classes introduced in this commit.

Signed-off-by: Vijayendra <vijayendra.bhamidipati@citrix.com>
---
 core/src/com/cloud/vm/UserVmCloneSettingVO.java    |  50 ++++++
 .../hypervisor/vmware/manager/VmwareManager.java   |   3 +
 .../vmware/manager/VmwareManagerImpl.java          |  18 +-
 .../hypervisor/vmware/resource/VmwareResource.java | 117 +++++++++----
 server/conf/migration-components.xml               |   1 +
 server/src/com/cloud/configuration/Config.java     |   1 +
 server/src/com/cloud/vm/UserVmManagerImpl.java     | 184 ++++++++++-----------
 .../com/cloud/vm/dao/UserVmCloneSettingDao.java    |  37 +++++
 .../cloud/vm/dao/UserVmCloneSettingDaoImpl.java    |  74 +++++++++
 .../vm/dao/UserVmCloneSettingDaoImplTest.java      |  62 +++++++
 .../UserVmCloneSettingDaoTestConfiguration.java    |  52 ++++++
 .../test/resources/CloneSettingDaoTestContext.xml  |  42 +++++
 setup/db/db/schema-410to420.sql                    |   9 +
 13 files changed, 527 insertions(+), 123 deletions(-)
 create mode 100755 core/src/com/cloud/vm/UserVmCloneSettingVO.java
 create mode 100755 server/src/com/cloud/vm/dao/UserVmCloneSettingDao.java
 create mode 100755 server/src/com/cloud/vm/dao/UserVmCloneSettingDaoImpl.java
 create mode 100644 server/test/com/cloud/vm/dao/UserVmCloneSettingDaoImplTest.java
 create mode 100644 server/test/com/cloud/vm/dao/UserVmCloneSettingDaoTestConfiguration.java
 create mode 100644 server/test/resources/CloneSettingDaoTestContext.xml
2013-02-25 14:57:57 -08:00

63 lines
2.5 KiB
Java

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with 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.
package com.cloud.vm.dao;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import junit.framework.TestCase;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.cloud.vm.UserVmCloneSettingVO;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/CloneSettingDaoTestContext.xml")
public class UserVmCloneSettingDaoImplTest extends TestCase {
@Inject UserVmCloneSettingDaoImpl _vmcsdao;
public void makeEntry(Long vmId, String cloneType) {
UserVmCloneSettingVO vo = new UserVmCloneSettingVO(vmId, cloneType);
_vmcsdao.persist(vo);
vo = _vmcsdao.findById(vmId);
assert (vo.getCloneType().equalsIgnoreCase(cloneType)) : "Unexpected Clone Type retrieved from table! Retrieved: " + vo.getCloneType() + " while expected was: " + cloneType;
// Next test whether the record is retrieved by clone type.
List<UserVmCloneSettingVO> voList = new ArrayList<UserVmCloneSettingVO>();
voList = _vmcsdao.listByCloneType(cloneType);
assert (voList != null && !voList.isEmpty()) : "Failed to retrieve any record of VMs by clone type!";
// If a vo list is indeed retrieved, also check whether the vm id retrieved matches what we put in there.
assert (voList.get(0).getVmId() == vmId) : "Retrieved vmId " + voList.get(0).getVmId() + " does not match input vmId: " + vmId;
}
@Test
public void testPersist() {
Long vmId = 2222l;
String[] arr = {"full", "linked"};
for (String cloneType : arr) {
_vmcsdao.expunge(vmId);
makeEntry(vmId, cloneType);
}
}
}