package org.ovirt.engine.api.restapi.types; import org.ovirt.engine.api.model.Cluster; import org.ovirt.engine.api.model.ErrorHandling; import org.ovirt.engine.api.model.MigrateOnError; import org.ovirt.engine.api.model.SchedulingPolicy; import org.ovirt.engine.api.model.SchedulingPolicyType; import org.junit.Test; import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.businessentities.VdsSelectionAlgorithm; import org.ovirt.engine.core.compat.Guid; public class ClusterMapperTest extends AbstractInvertibleMappingTest<Cluster, VDSGroup, VDSGroup> { protected ClusterMapperTest() { super(Cluster.class, VDSGroup.class, VDSGroup.class); } @Override protected Cluster postPopulate(Cluster model) { model.getSchedulingPolicy().setPolicy(MappingTestHelper.shuffle(SchedulingPolicyType.class).value()); ErrorHandling errorHandling = new ErrorHandling(); errorHandling.setOnError(MappingTestHelper.shuffle(MigrateOnError.class).value()); model.setErrorHandling(errorHandling); SchedulingPolicy policy = new SchedulingPolicy(); policy.setPolicy("power_saving"); model.setSchedulingPolicy(policy); return model; } @Override protected void verify(Cluster model, Cluster transform) { assertNotNull(transform); assertEquals(model.getName(), transform.getName()); assertEquals(model.getId(), transform.getId()); assertEquals(model.getDescription(), transform.getDescription()); assertNotNull(transform.getCpu()); assertEquals(model.getCpu().getId(), transform.getCpu().getId()); assertNotNull(transform.getDataCenter()); assertEquals(model.getDataCenter().getId(), transform.getDataCenter().getId()); assertNotNull(transform.getSchedulingPolicy()); assertEquals(model.getSchedulingPolicy().getPolicy(), transform.getSchedulingPolicy().getPolicy()); assertEquals(model.getErrorHandling().getOnError(), transform.getErrorHandling().getOnError()); assertNotNull(transform.getMemoryPolicy()); assertNotNull(transform.getMemoryPolicy().getTransparentHugepages()); assertEquals(transform.getMemoryPolicy().getTransparentHugepages().isEnabled(), transform.getMemoryPolicy().getTransparentHugepages().isEnabled()); } private Mapper<Cluster, VDSGroup> getMapper() { MappingLocator mappingLocator = new MappingLocator(); mappingLocator.populate(); return mappingLocator.getMapper(Cluster.class, VDSGroup.class); } @Test public void thpDefaultFalseTest() { Cluster cluster = new Cluster(); cluster.setVersion(new org.ovirt.engine.api.model.Version(){{setMajor(2);setMinor(0);}}); VDSGroup transform = getMapper().map(cluster, null); assertEquals(transform.getTransparentHugepages(), false); } @Test public void thpDefaultTrueTest() { Cluster cluster = new Cluster(); cluster.setVersion(new org.ovirt.engine.api.model.Version(){{setMajor(3);setMinor(0);}}); VDSGroup transform = getMapper().map(cluster, null); assertEquals(transform.getTransparentHugepages(), true); } @Test public void testSchedulingPolicyNone() { Cluster cluster = new Cluster(); SchedulingPolicy policy = new SchedulingPolicy(); policy.setPolicy("None"); cluster.setSchedulingPolicy(policy); VDSGroup transform = getMapper().map(cluster, null); assertNotNull(transform.getselection_algorithm()); assertEquals(transform.getselection_algorithm(), VdsSelectionAlgorithm.None); transform.setID(Guid.Empty); cluster = ClusterMapper.map(transform, cluster); assertNull(cluster.getSchedulingPolicy().getPolicy()); } }