mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
Fix Quota plugin state on QuotaSummaryResponse (#7257)
This commit is contained in:
parent
e61051e4fc
commit
c8ee0e7c30
@ -173,7 +173,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
|
||||
return new Pair<>(result, count);
|
||||
}
|
||||
|
||||
private QuotaSummaryResponse getQuotaSummaryResponse(final Account account) {
|
||||
protected QuotaSummaryResponse getQuotaSummaryResponse(final Account account) {
|
||||
Calendar[] period = _statement.getCurrentStatementTime();
|
||||
|
||||
if (account != null) {
|
||||
@ -192,6 +192,7 @@ public class QuotaResponseBuilderImpl implements QuotaResponseBuilder {
|
||||
qr.setStartDate(period[0].getTime());
|
||||
qr.setEndDate(period[1].getTime());
|
||||
qr.setCurrency(QuotaConfig.QuotaCurrencySymbol.value());
|
||||
qr.setQuotaEnabled(QuotaConfig.QuotaAccountEnabled.valueIn(account.getId()));
|
||||
qr.setObjectName("summary");
|
||||
return qr;
|
||||
} else {
|
||||
|
||||
@ -16,24 +16,32 @@
|
||||
// under the License.
|
||||
package org.apache.cloudstack.api.response;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import org.apache.cloudstack.api.ServerApiException;
|
||||
import org.apache.cloudstack.api.command.QuotaEmailTemplateListCmd;
|
||||
import org.apache.cloudstack.api.command.QuotaEmailTemplateUpdateCmd;
|
||||
import org.apache.cloudstack.framework.config.ConfigKey;
|
||||
import org.apache.cloudstack.quota.QuotaService;
|
||||
import org.apache.cloudstack.quota.QuotaStatement;
|
||||
import org.apache.cloudstack.quota.constant.QuotaConfig;
|
||||
import org.apache.cloudstack.quota.constant.QuotaTypes;
|
||||
import org.apache.cloudstack.quota.dao.QuotaBalanceDao;
|
||||
import org.apache.cloudstack.quota.dao.QuotaCreditsDao;
|
||||
import org.apache.cloudstack.quota.dao.QuotaEmailTemplatesDao;
|
||||
import org.apache.cloudstack.quota.dao.QuotaTariffDao;
|
||||
import org.apache.cloudstack.quota.dao.QuotaUsageDao;
|
||||
import org.apache.cloudstack.quota.vo.QuotaBalanceVO;
|
||||
import org.apache.cloudstack.quota.vo.QuotaCreditsVO;
|
||||
import org.apache.cloudstack.quota.vo.QuotaEmailTemplatesVO;
|
||||
@ -87,11 +95,38 @@ public class QuotaResponseBuilderImplTest extends TestCase {
|
||||
@Mock
|
||||
QuotaTariffVO quotaTariffVoMock;
|
||||
|
||||
@Mock
|
||||
QuotaStatement quotaStatementMock;
|
||||
|
||||
@Mock
|
||||
DomainDao domainDaoMock;
|
||||
|
||||
@Mock
|
||||
QuotaUsageDao quotaUsageDaoMock;
|
||||
|
||||
@InjectMocks
|
||||
QuotaResponseBuilderImpl quotaResponseBuilderSpy = Mockito.spy(QuotaResponseBuilderImpl.class);
|
||||
|
||||
Date date = new Date();
|
||||
|
||||
@Mock
|
||||
Account accountMock;
|
||||
|
||||
@Mock
|
||||
DomainVO domainVOMock;
|
||||
|
||||
private void overrideDefaultQuotaEnabledConfigValue(final Object value) throws IllegalAccessException, NoSuchFieldException {
|
||||
Field f = ConfigKey.class.getDeclaredField("_defaultValue");
|
||||
f.setAccessible(true);
|
||||
f.set(QuotaConfig.QuotaAccountEnabled, value);
|
||||
}
|
||||
|
||||
private Calendar[] createPeriodForQuotaSummary() {
|
||||
final Calendar calendar = Calendar.getInstance();
|
||||
calendar.set(Calendar.HOUR, 0);
|
||||
return new Calendar[] {calendar, calendar};
|
||||
}
|
||||
|
||||
private QuotaTariffVO makeTariffTestData() {
|
||||
QuotaTariffVO tariffVO = new QuotaTariffVO();
|
||||
tariffVO.setUsageType(QuotaTypes.IP_ADDRESS);
|
||||
@ -339,4 +374,36 @@ public class QuotaResponseBuilderImplTest extends TestCase {
|
||||
|
||||
Mockito.verify(quotaTariffVoMock).setRemoved(Mockito.any(Date.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getQuotaSummaryResponseTestAccountIsNotNullQuotaIsDisabledShouldReturnFalse() throws NoSuchFieldException, IllegalAccessException {
|
||||
Calendar[] period = createPeriodForQuotaSummary();
|
||||
overrideDefaultQuotaEnabledConfigValue("false");
|
||||
|
||||
Mockito.doReturn(accountMock).when(accountDaoMock).findActiveAccount(Mockito.anyString(), Mockito.anyLong());
|
||||
Mockito.doReturn(period).when(quotaStatementMock).getCurrentStatementTime();
|
||||
Mockito.doReturn(domainVOMock).when(domainDaoMock).findById(Mockito.anyLong());
|
||||
Mockito.doReturn(BigDecimal.ZERO).when(quotaBalanceDaoMock).lastQuotaBalance(Mockito.anyLong(), Mockito.anyLong(), Mockito.any(Date.class));
|
||||
Mockito.doReturn(BigDecimal.ZERO).when(quotaUsageDaoMock).findTotalQuotaUsage(Mockito.anyLong(), Mockito.anyLong(), Mockito.isNull(), Mockito.any(Date.class), Mockito.any(Date.class));
|
||||
|
||||
QuotaSummaryResponse quotaSummaryResponse = quotaResponseBuilderSpy.getQuotaSummaryResponse(accountMock);
|
||||
|
||||
assertFalse(quotaSummaryResponse.getQuotaEnabled());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getQuotaSummaryResponseTestAccountIsNotNullQuotaIsEnabledShouldReturnTrue() throws NoSuchFieldException, IllegalAccessException {
|
||||
Calendar[] period = createPeriodForQuotaSummary();
|
||||
overrideDefaultQuotaEnabledConfigValue("true");
|
||||
|
||||
Mockito.doReturn(accountMock).when(accountDaoMock).findActiveAccount(Mockito.anyString(), Mockito.anyLong());
|
||||
Mockito.doReturn(period).when(quotaStatementMock).getCurrentStatementTime();
|
||||
Mockito.doReturn(domainVOMock).when(domainDaoMock).findById(Mockito.anyLong());
|
||||
Mockito.doReturn(BigDecimal.ZERO).when(quotaBalanceDaoMock).lastQuotaBalance(Mockito.anyLong(), Mockito.anyLong(), Mockito.any(Date.class));
|
||||
Mockito.doReturn(BigDecimal.ZERO).when(quotaUsageDaoMock).findTotalQuotaUsage(Mockito.anyLong(), Mockito.anyLong(), Mockito.isNull(), Mockito.any(Date.class), Mockito.any(Date.class));
|
||||
|
||||
QuotaSummaryResponse quotaSummaryResponse = quotaResponseBuilderSpy.getQuotaSummaryResponse(accountMock);
|
||||
|
||||
assertTrue(quotaSummaryResponse.getQuotaEnabled());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user