package org.ovirt.engine.core.bll.storage.domain; import static org.junit.Assert.assertEquals; import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Collections; import java.util.List; import org.junit.Test; import org.mockito.Mock; import org.ovirt.engine.core.bll.AbstractQueryTest; import org.ovirt.engine.core.common.businessentities.StorageDomain; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dao.StorageDomainDao; /** A test case for the {@link GetStorageDomainsByImageIdQuery} class. */ public class GetStorageDomainsByImageIdQueryTest extends AbstractQueryTest<IdQueryParameters, GetStorageDomainsByImageIdQuery<IdQueryParameters>> { @Mock private StorageDomainDao storageDomainDaoMock; @Test public void testExecuteQueryCommandWithEmptyList() { // Set up the query parameters Guid imageId = Guid.newGuid(); when(params.getId()).thenReturn(imageId); // Set up the Daos List<StorageDomain> expected = Collections.singletonList(new StorageDomain()); when(storageDomainDaoMock.getAllStorageDomainsByImageId(imageId)).thenReturn(expected); // Run the query GetStorageDomainsByImageIdQuery<IdQueryParameters> query = getQuery(); query.executeQueryCommand(); // Assert the result assertEquals("Wrong result returned", expected, getQuery().getQueryReturnValue().getReturnValue()); } @Test public void testExecuteQueryCommandWithMultipleStorageList() { // Set up the query parameters Guid imageId = Guid.newGuid(); when(params.getId()).thenReturn(imageId); StorageDomain firstStorageDomain = new StorageDomain(); firstStorageDomain.setId(Guid.newGuid()); StorageDomain secondStorageDomain = new StorageDomain(); secondStorageDomain.setId(Guid.newGuid()); List<StorageDomain> expected = new ArrayList<>(); expected.add(firstStorageDomain); expected.add(secondStorageDomain); // Set up the Daos when(storageDomainDaoMock.getAllStorageDomainsByImageId(imageId)).thenReturn(expected); // Run the query GetStorageDomainsByImageIdQuery<IdQueryParameters> query = getQuery(); query.executeQueryCommand(); // Assert the result assertEquals("Wrong result returned", expected, getQuery().getQueryReturnValue().getReturnValue()); } }