package org.ovirt.engine.core.bll;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.ovirt.engine.core.common.action.QuotaCRUDParameters;
import org.ovirt.engine.core.common.businessentities.Quota;
import org.ovirt.engine.core.common.businessentities.QuotaCluster;
import org.ovirt.engine.core.common.businessentities.QuotaStorage;
import org.ovirt.engine.core.common.errors.EngineMessage;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.dao.QuotaDao;
import org.ovirt.engine.core.utils.MockConfigRule;
public class AddQuotaCommandTest extends BaseCommandTest {
@Mock
private QuotaDao quotaDao;
/**
* The command under test.
*/
@InjectMocks
private AddQuotaCommand command = createCommand();
@ClassRule
public static MockConfigRule mcr = new MockConfigRule();
@Before
public void testSetup() {
when(quotaDao.getById(any(Guid.class))).thenReturn(mockGeneralStorageQuota());
}
@Test
public void testExecuteCommand() throws Exception {
command.executeCommand();
}
@Test
public void testValidateCommand() throws Exception {
ValidateTestUtils.runAndAssertValidateSuccess(command);
}
@Test
public void testAddDefaultQuota() {
command.getParameters().getQuota().setDefault(true);
ValidateTestUtils.runAndAssertValidateFailure(command, EngineMessage.ACTION_TYPE_FAILED_QUOTA_IS_NOT_VALID);
}
private AddQuotaCommand createCommand() {
QuotaCRUDParameters param = new QuotaCRUDParameters(mockGeneralStorageQuota());
return new AddQuotaCommand(param, null);
}
private Quota mockGeneralStorageQuota() {
Quota generalQuota = new Quota();
generalQuota.setDescription("New Quota to create");
generalQuota.setQuotaName("New Quota Name");
QuotaStorage storageQuota = new QuotaStorage();
storageQuota.setStorageSizeGB(100L);
storageQuota.setStorageSizeGBUsage(0d);
generalQuota.setGlobalQuotaStorage(storageQuota);
QuotaCluster clusterQuota = new QuotaCluster();
clusterQuota.setVirtualCpu(0);
clusterQuota.setVirtualCpuUsage(0);
clusterQuota.setMemSizeMB(0L);
clusterQuota.setMemSizeMBUsage(0L);
generalQuota.setGlobalQuotaCluster(clusterQuota);
generalQuota.setId(Guid.newGuid());
generalQuota.setStoragePoolId(Guid.newGuid());
return generalQuota;
}
}