package org.ovirt.engine.core.dao; import static org.junit.Assert.*; import java.util.List; import org.junit.Before; import org.junit.Test; import org.ovirt.engine.core.common.action.AddDiskToVmParameters; import org.ovirt.engine.core.common.action.VdcActionParametersBase; import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.businessentities.AsyncTaskResultEnum; import org.ovirt.engine.core.common.businessentities.AsyncTaskStatusEnum; import org.ovirt.engine.core.common.businessentities.async_tasks; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.TransactionScopeOption; /** * <code>AsyncTaskDAOTest</code> performs tests against the {@link AsyncTaskDAO} type. * * */ public class AsyncTaskDAOTest extends BaseDAOTestCase { private static final int TASK_COUNT = 2; private AsyncTaskDAO dao; private async_tasks newAsyncTask; private async_tasks existingAsyncTask; private VdcActionParametersBase params; @Override @Before public void setUp() throws Exception { super.setUp(); dao = prepareDAO(dbFacade.getAsyncTaskDAO()); params = new VdcActionParametersBase(); params.setSessionId("ASESSIONID"); params.setTransactionScopeOption(TransactionScopeOption.RequiresNew); // create some test data newAsyncTask = new async_tasks(); newAsyncTask.settask_id(Guid.NewGuid()); newAsyncTask.setaction_type(VdcActionType.AddDiskToVm); newAsyncTask.setstatus(AsyncTaskStatusEnum.running); newAsyncTask.setresult(AsyncTaskResultEnum.success); newAsyncTask.setaction_parameters(params); existingAsyncTask = dao.get(new Guid("340fd52b-3400-4cdd-8d3f-C9d03704b0aa")); } /** * Ensures that if the id is invalid then no AsyncTask is returned. */ @Test public void testGetWithInvalidId() { async_tasks result = dao.get(Guid.NewGuid()); assertNull(result); } /** * Ensures that, if the id is valid, then retrieving a AsyncTask works as expected. */ @Test public void testGet() { async_tasks result = dao.get(existingAsyncTask.gettask_id()); // NOTE: There is no equals() method in async_tasks class. assertNotNull(result); assertEquals(existingAsyncTask, result); } /** * Ensures that finding all AsyncTasks works as expected. */ @Test public void testGetAll() { List<async_tasks> result = dao.getAll(); assertEquals(TASK_COUNT, result.size()); } /** * Ensures that saving a ad_group works as expected. */ @Test public void testSave() { dao.save(newAsyncTask); async_tasks result = dao.get(newAsyncTask.gettask_id()); assertEquals(newAsyncTask, result); } /** * Ensures that updating a ad_group works as expected. */ @Test public void testUpdate() { existingAsyncTask.setstatus(AsyncTaskStatusEnum.aborting); existingAsyncTask.setresult(AsyncTaskResultEnum.failure); existingAsyncTask.setaction_type(VdcActionType.AddDiskToVm); AddDiskToVmParameters addDiskToVmParams = new AddDiskToVmParameters(); addDiskToVmParams.setSessionId("SESSION_ID"); existingAsyncTask.setaction_parameters(addDiskToVmParams); dao.update(existingAsyncTask); async_tasks result = dao.get(existingAsyncTask.gettask_id()); assertEquals(existingAsyncTask, result); } /** * Ensures that removing a ad_group works as expected. */ @Test public void testRemove() { dao.remove(existingAsyncTask.gettask_id()); async_tasks result = dao.get(existingAsyncTask.gettask_id()); assertNull(result); } }