package org.ovirt.engine.core.bll;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.mockito.Mock;
import org.ovirt.engine.core.common.businessentities.VM;
import org.ovirt.engine.core.common.queries.GetVmByVmNameForDataCenterParameters;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.VmDao;
/**
* A test case for {@link GetVmByVmNameForDataCenterQuery}.
* It does not test database implementation, but rather tests that the right delegations to the Dao occur.
*/
public class GetVmByVmNameForDataCenterQueryTest extends AbstractUserQueryTest<GetVmByVmNameForDataCenterParameters, GetVmByVmNameForDataCenterQuery<GetVmByVmNameForDataCenterParameters>> {
@Mock
private VmDao vmDaoMock;
@Test
public void testExecuteQuery() {
Guid dataCenterId = Guid.newGuid();
String VM_NAME = "VM";
VM expectedResult = new VM();
expectedResult.setId(dataCenterId);
GetVmByVmNameForDataCenterParameters paramsMock = getQueryParameters();
when(paramsMock.getName()).thenReturn(VM_NAME);
when(paramsMock.getDataCenterId()).thenReturn(dataCenterId);
when(vmDaoMock.getByNameForDataCenter(dataCenterId, VM_NAME, getUser().getId(), paramsMock.isFiltered())).thenReturn(expectedResult);
doNothing().when(getQuery()).updateVMDetails(expectedResult);
getQuery().executeQueryCommand();
VM result = getQuery().getQueryReturnValue().getReturnValue();
assertEquals("Wrong VM returned", expectedResult, result);
}
}