package org.ovirt.engine.core.dao;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.List;
import org.apache.commons.lang.NotImplementedException;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.DiskImageTemplate;
import org.ovirt.engine.core.compat.Guid;
public class DiskImageTemplateDAOTest extends BaseDAOTestCase {
private static final Guid EXISTING_IMAGE_DISK_TEMPLATE = new Guid("42058975-3d5e-484a-80c1-01c31207f578");
private static final Guid EXISTING_VM_TEMPLATE = new Guid("1b85420c-b84c-4f29-997e-0eb674b40b79");
private DiskImageTemplate existingTemplate;
private DiskImageTemplate newTemplate;
private DiskImageTemplateDAO dao;
@Override
public void setUp() throws Exception {
super.setUp();
dao = prepareDAO(dbFacade.getDiskImageTemplateDAO());
existingTemplate = dao.get(EXISTING_IMAGE_DISK_TEMPLATE );
newTemplate = new DiskImageTemplate();
newTemplate.setId(Guid.NewGuid());
newTemplate.setvmt_guid(EXISTING_VM_TEMPLATE);
newTemplate.setvtim_it_guid(newTemplate.getId());
newTemplate.setinternal_drive_mapping("1");
}
/**
* Ensures that retrieving a template works.
*/
@Test
public void testGetTemplate() {
DiskImageTemplate result = dao.get(EXISTING_IMAGE_DISK_TEMPLATE);
assertNotNull(result);
assertEquals(existingTemplate, result);
}
/**
* Ensures that the right template is returned.
*/
@Test
public void testGetTemplateByVmTemplateAndId() {
DiskImageTemplate result = dao.getByVmTemplateAndId(
EXISTING_VM_TEMPLATE, existingTemplate.getit_guid());
assertNotNull(result);
assertEquals(existingTemplate.getit_guid(), result.getit_guid());
}
/**
* Ensures that all templates are returned.
*/
@Test
public void testGetAllTemplatesForVmTemplate() {
List<DiskImageTemplate> result = dao
.getAllByVmTemplate(existingTemplate.getvmt_guid());
assertNotNull(result);
assertFalse(result.isEmpty());
for (DiskImageTemplate template : result) {
assertEquals(existingTemplate.getit_guid(), template.getit_guid());
}
}
/**
* Ensures that saving a disk template works as expected.
*/
@Test
public void testSaveTemplate() {
dao.save(newTemplate);
DiskImageTemplate result = dao.get(newTemplate.getId());
assertNotNull(result);
assertEquals(newTemplate, result);
}
/**
* Ensures that updating a template works.
*/
@Test
public void testUpdateTemplate() {
existingTemplate.setdescription("This is a new description");
dao.update(existingTemplate);
DiskImageTemplate result = dao.get(existingTemplate
.getit_guid());
assertNotNull(result);
assertEquals(existingTemplate, result);
}
/**
* Ensures that removing a template works as expected.
*/
@Test
public void testRemoveTemplate() {
dao.remove(existingTemplate.getvmt_guid());
DiskImageTemplate result = dao.get(existingTemplate
.getvmt_guid());
assertNull(result);
}
@Test(expected=NotImplementedException.class)
public void testGetAll() {
dao.getAll(); //there is no implementation for this method
}
}