package org.ovirt.engine.api.restapi.types; import org.junit.Test; import org.ovirt.engine.api.model.Boot; import org.ovirt.engine.api.model.BootDevice; import org.ovirt.engine.api.model.DisplayType; import org.ovirt.engine.api.model.VM; import org.ovirt.engine.api.model.VmType; import org.ovirt.engine.core.common.businessentities.OriginType; import org.ovirt.engine.core.common.businessentities.VmDynamic; import org.ovirt.engine.core.common.businessentities.VmStatic; import org.ovirt.engine.core.common.businessentities.VmStatistics; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.NGuid; import static org.ovirt.engine.api.restapi.types.MappingTestHelper.rand; import static org.easymock.classextension.EasyMock.expect; public class VmMapperTest extends AbstractInvertibleMappingTest<VM, VmStatic, org.ovirt.engine.core.common.businessentities.VM> { public VmMapperTest() { super(VM.class, VmStatic.class, org.ovirt.engine.core.common.businessentities.VM.class); } @Override protected void setUpConfigExpectations() { expect(Config.<Integer> GetValue(ConfigValues.NumberVmRefreshesBeforeSave)).andReturn( rand(10)).anyTimes(); } @Override protected org.ovirt.engine.core.common.businessentities.VM getInverse(VmStatic to) { VmStatistics statistics = new VmStatistics(); statistics.setcpu_user(new Double(10L)); statistics.setcpu_sys(new Double(20L)); VmDynamic dynamic = new VmDynamic(); dynamic.setdisplay_type(to.getdefault_display_type()); org.ovirt.engine.core.common.businessentities.VM ret = new org.ovirt.engine.core.common.businessentities.VM(to, dynamic, statistics); ret.setusage_mem_percent(Integer.valueOf(50)); return ret; } @Override protected VM postPopulate(VM from) { from.setType(MappingTestHelper.shuffle(VmType.class).value()); from.setOrigin(OriginType.VMWARE.name().toLowerCase()); from.getDisplay().setType(MappingTestHelper.shuffle(DisplayType.class).value()); for (Boot boot : from.getOs().getBoot()) { boot.setDev(MappingTestHelper.shuffle(BootDevice.class).value()); } while (from.getCpu().getTopology().getSockets() == 0) { from.getCpu().getTopology().setSockets(MappingTestHelper.rand(100)); } while (from.getCpu().getTopology().getCores() == 0) { from.getCpu().getTopology().setCores(MappingTestHelper.rand(100)); } from.setTimezone("Australia/Darwin"); return from; } @Override protected void verify(VM model, VM transform) { assertNotNull(transform); assertEquals(model.getName(), transform.getName()); assertEquals(model.getId(), transform.getId()); assertEquals(model.getDescription(), transform.getDescription()); assertEquals(model.getType(), transform.getType()); assertEquals(model.getOrigin(), transform.getOrigin()); assertTrue(Math.abs(model.getMemory() - transform.getMemory()) <= (1024 * 1024)); assertNotNull(transform.getTemplate()); assertEquals(model.getTemplate().getId(), transform.getTemplate().getId()); assertNotNull(transform.getCluster()); assertNotNull(transform.getCpu()); assertNotNull(transform.getCpu().getTopology()); assertTrue(Math.abs(model.getCpu().getTopology().getCores() - transform.getCpu().getTopology().getCores()) < model.getCpu().getTopology().getSockets()); assertEquals(model.getCpu().getTopology().getSockets(), transform.getCpu().getTopology().getSockets()); assertNotNull(transform.getOs()); assertTrue(transform.getOs().isSetBoot()); assertEquals(model.getOs().getBoot().size(), transform.getOs().getBoot().size()); for (int i = 0; i < model.getOs().getBoot().size(); i++) { assertEquals(model.getOs().getBoot().get(i).getDev(), transform.getOs().getBoot() .get(i).getDev()); } assertEquals(model.getOs().getKernel(), transform.getOs().getKernel()); assertEquals(model.getOs().getInitrd(), transform.getOs().getInitrd()); assertEquals(model.getOs().getCmdline(), transform.getOs().getCmdline()); assertTrue(transform.isSetDisplay()); assertEquals(model.isSetDisplay(), transform.isSetDisplay()); assertEquals(model.getDisplay().getType(), transform.getDisplay().getType()); assertEquals(model.getDisplay().getMonitors(), transform.getDisplay().getMonitors()); assertEquals(model.getPlacementPolicy().getHost().getId(), transform.getPlacementPolicy().getHost().getId()); assertTrue(Math.abs(model.getMemoryPolicy().getGuaranteed() - transform.getMemoryPolicy().getGuaranteed()) <= (1024 * 1024)); assertEquals(model.getDomain().getName(), transform.getDomain().getName()); assertEquals(model.getTimezone(), transform.getTimezone()); assertEquals(model.getUsb().isEnabled(), transform.getUsb().isEnabled()); } @Test public void testGustIp() { org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM(); VmDynamic vmDynamic = new VmDynamic(); vmDynamic.setvm_ip("2.2.2.2"); vm.setDynamicData(vmDynamic); VM map = VmMapper.map(vm, null); assertNotNull(map.getGuestInfo().getIps().getIPs().get(0)); assertEquals(map.getGuestInfo().getIps().getIPs().get(0).getAddress(), "2.2.2.2"); } @Test public void testGustIps() { org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM(); VmDynamic vmDynamic = new VmDynamic(); vmDynamic.setvm_ip("2.2.2.2 2.2.2.3 2.2.2.4"); vm.setDynamicData(vmDynamic); VM map = VmMapper.map(vm, null); assertNotNull(map.getGuestInfo().getIps().getIPs().get(0)); assertEquals(map.getGuestInfo().getIps().getIPs().get(0).getAddress(), "2.2.2.2"); assertEquals(map.getGuestInfo().getIps().getIPs().get(1).getAddress(), "2.2.2.3"); assertEquals(map.getGuestInfo().getIps().getIPs().get(2).getAddress(), "2.2.2.4"); } @Test public void testDisplayPort() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); entity.setdisplay(5900); entity.setdisplay_secure_port(9999); VM model = VmMapper.map(entity, null); assertTrue(model.getDisplay().getPort()==5900); assertTrue(model.getDisplay().getSecurePort()==9999); entity.setdisplay(-1); entity.setdisplay_secure_port(-1); model = VmMapper.map(entity, null); assertNull(model.getDisplay().getPort()); assertNull(model.getDisplay().getSecurePort()); } @Test public void testMapOriginTypeRhev() { String s = VmMapper.map(OriginType.ENGINE, null); assertEquals(s, "rhev"); OriginType s2 = VmMapper.map(s, OriginType.ENGINE); assertEquals(s2, OriginType.ENGINE); } @Test public void testMapHostId() { org.ovirt.engine.core.common.businessentities.VM entity = new org.ovirt.engine.core.common.businessentities.VM(); Guid guid = NGuid.NewGuid(); entity.setrun_on_vds(guid); VM model = VmMapper.map(entity, null); assertEquals(guid.toString(), model.getHost().getId()); } }