package org.ovirt.engine.api.restapi.resource; import java.util.ArrayList; import java.util.List; import org.junit.Test; import org.ovirt.engine.api.model.Vm; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.common.scheduling.parameters.AffinityGroupCRUDParameters; import org.ovirt.engine.core.compat.Guid; public class BackendAffinityGroupVmResourceTest extends AbstractBackendSubResourceTest<Vm, org.ovirt.engine.core.common.businessentities.VM, BackendAffinityGroupVmResource> { public BackendAffinityGroupVmResourceTest() { super(new BackendAffinityGroupVmResource(GUIDS[0], GUIDS[1].toString())); } @Test public void testRemove() throws Exception { setUriInfo(setUpBasicUriExpectations()); setUpGetGroupExpectations(); setUriInfo( setUpActionExpectations( VdcActionType.EditAffinityGroup, AffinityGroupCRUDParameters.class, new String[] {}, new Object[] {}, true, true ) ); verifyRemove(resource.remove()); } private void setUpGetGroupExpectations() throws Exception { setUpGetEntityExpectations( VdcQueryType.GetAffinityGroupById, IdQueryParameters.class, new String[] { "Id" }, new Object[] { GUIDS[0] }, getGroup() ); } protected org.ovirt.engine.core.common.businessentities.VM getEntity(int index) { org.ovirt.engine.core.common.businessentities.VM vm = new org.ovirt.engine.core.common.businessentities.VM(); vm.setId(GUIDS[index]); vm.setName(NAMES[index]); return vm; } private org.ovirt.engine.core.common.scheduling.AffinityGroup getGroup() { org.ovirt.engine.core.common.scheduling.AffinityGroup group = new org.ovirt.engine.core.common.scheduling.AffinityGroup(); List<Guid> vmIds = new ArrayList<>(); List<String> vmNames = new ArrayList<>(); for (int i = 0; i < NAMES.length; i++) { org.ovirt.engine.core.common.businessentities.VM vm = getEntity(i); vmIds.add(vm.getId()); vmNames.add(vm.getName()); } group.setVmIds(vmIds); group.setVmEntityNames(vmNames); return group; } }