package org.ovirt.engine.core.bll.utils;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.storage.UnregisteredDisk;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.utils.OvfUtils;
import org.ovirt.engine.core.utils.ovf.xml.XmlDocument;
public class OvfUtilsTest {
private static final String VM_OVF_XML_DATA = "backend/manager/modules/bll/src/test/resources/vmOvfData.xml";
@Test
public void testFetchVmDisks() throws IOException {
try {
XmlDocument xmlDocument = new XmlDocument(getXmlOvfData());
Set<Guid> disks = OvfUtils.fetchVmDisks(xmlDocument);
assertNotNull("The list of disks should not be null", disks);
assertTrue("The list of disks should not be empty", !disks.isEmpty());
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testUpdateUnregisteredDisksWithVMsWithEmptyUnregDisks() throws IOException {
try {
XmlDocument xmlDocument = new XmlDocument(getXmlOvfData());
List<UnregisteredDisk> unregDisks = new ArrayList<>();
OvfUtils.updateUnregisteredDisksWithVMs(unregDisks, Guid.newGuid(), "TestVM", xmlDocument);
assertTrue("The list of disks should not be empty", unregDisks.isEmpty());
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void testUpdateUnregisteredDisksWithVMsWithInitializedUnregDisks() throws IOException {
try {
XmlDocument xmlDocument = new XmlDocument(getXmlOvfData());
List<UnregisteredDisk> unregDisks = new ArrayList<>();
UnregisteredDisk unregDisk = new UnregisteredDisk();
unregDisk.getDiskImage().setId(Guid.createGuidFromString("f934b12c-1e22-4ad8-bbce-ec0b2a5defa4"));
unregDisk.getDiskImage()
.setStorageIds(new ArrayList<>(Collections.singletonList(Guid.createGuidFromString("7e2a7eac-3b76-4d45-a7dd-caae8fe0f588"))));
unregDisks.add(unregDisk);
OvfUtils.updateUnregisteredDisksWithVMs(unregDisks, Guid.newGuid(), "TestVM", xmlDocument);
assertTrue("The list of disks should not be empty", !unregDisks.isEmpty());
assertTrue("The VMs id is set in the unregisteterd disks", !unregDisks.get(0).getVms().isEmpty());
} catch (Exception e) {
e.printStackTrace();
}
}
private String getXmlOvfData() throws IOException {
return new String(Files.readAllBytes(Paths.get(VM_OVF_XML_DATA)), StandardCharsets.UTF_8);
}
}