package org.ovirt.engine.core.bll.storage;
import static org.powermock.api.mockito.PowerMockito.spy;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.ovirt.engine.core.bll.BaseMockitoTest;
import org.ovirt.engine.core.common.action.StoragePoolParametersBase;
import org.ovirt.engine.core.common.businessentities.StorageDomainStatus;
import org.ovirt.engine.core.common.businessentities.storage_domains;
import org.ovirt.engine.core.dal.dbbroker.DbFacade;
public class RemoveStoragePoolCommandTest extends BaseMockitoTest {
private RemoveStoragePoolCommand<StoragePoolParametersBase> createCommand(StoragePoolParametersBase param) {
RemoveStoragePoolCommand<StoragePoolParametersBase> concrete =
new RemoveStoragePoolCommand<StoragePoolParametersBase>(param);
return spy(concrete);
}
@Test
public void testEmptyDomainList() {
DbFacade db = setUpDB();
StoragePoolParametersBase param = new StoragePoolParametersBase();
RemoveStoragePoolCommand<StoragePoolParametersBase> cmd = createCommand(param);
List<storage_domains> domainsList = new ArrayList<storage_domains>();
List<storage_domains> listReturned = cmd.getActiveOrLockedDomainList(domainsList);
assertTrue(listReturned.isEmpty());
}
/**
* Test when Active domain is in the Data Center
*/
@Test
public void testActiveDomainInList() {
DbFacade db = setUpDB();
StoragePoolParametersBase param = new StoragePoolParametersBase();
RemoveStoragePoolCommand<StoragePoolParametersBase> cmd = createCommand(param);
List<storage_domains> domainsList = new ArrayList<storage_domains>();
storage_domains tempStorageDomains = new storage_domains();
tempStorageDomains.setstatus(StorageDomainStatus.Active);
domainsList.add(tempStorageDomains);
List<storage_domains> listReturned = cmd.getActiveOrLockedDomainList(domainsList);
assertTrue(!listReturned.isEmpty());
}
/**
* Test when there is locked domain is in the Data Center.
*/
@Test
public void testLockedDomainInList() {
DbFacade db = setUpDB();
StoragePoolParametersBase param = new StoragePoolParametersBase();
RemoveStoragePoolCommand<StoragePoolParametersBase> cmd = createCommand(param);
List<storage_domains> domainsList = new ArrayList<storage_domains>();
storage_domains tempStorageDomains = new storage_domains();
tempStorageDomains.setstatus(StorageDomainStatus.Locked);
domainsList.add(tempStorageDomains);
List<storage_domains> listReturned = cmd.getActiveOrLockedDomainList(domainsList);
assertTrue(!listReturned.isEmpty());
}
/**
* Test when there is locked domain and active is in the Data Center.
*/
@Test
public void testLockedAndActiveDomainInList() {
DbFacade db = setUpDB();
StoragePoolParametersBase param = new StoragePoolParametersBase();
RemoveStoragePoolCommand<StoragePoolParametersBase> cmd = createCommand(param);
List<storage_domains> domainsList = new ArrayList<storage_domains>();
// Add first locked storage
storage_domains tempStorageDomains = new storage_domains();
tempStorageDomains.setstatus(StorageDomainStatus.Locked);
domainsList.add(tempStorageDomains);
// Add second active storage
tempStorageDomains.setstatus(StorageDomainStatus.Active);
domainsList.add(tempStorageDomains);
List<storage_domains> listReturned = cmd.getActiveOrLockedDomainList(domainsList);
assertTrue(listReturned.size() == 2);
}
/**
* Test when there is in active domain.
*/
@Test
public void testInActiveDomainInList() {
DbFacade db = setUpDB();
StoragePoolParametersBase param = new StoragePoolParametersBase();
RemoveStoragePoolCommand<StoragePoolParametersBase> cmd = createCommand(param);
List<storage_domains> domainsList = new ArrayList<storage_domains>();
// Add first locked storage
storage_domains tempStorageDomains = new storage_domains();
tempStorageDomains.setstatus(StorageDomainStatus.InActive);
domainsList.add(tempStorageDomains);
List<storage_domains> listReturned = cmd.getActiveOrLockedDomainList(domainsList);
assertTrue(listReturned.isEmpty());
}
}