blob: 30085193e55e4e69aa7f6f8560e14e4022ac05d0 [file] [log] [blame]
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership. The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied. See the License for the
// specific language governing permissions and limitations
// under the License.
package com.cloud.resourcelimit;
import com.cloud.configuration.ResourceLimit;
import com.cloud.vpc.MockResourceLimitManagerImpl;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class ResourceLimitManagerImplTest extends TestCase {
private static final Logger s_logger = Logger.getLogger(ResourceLimitManagerImplTest.class);
MockResourceLimitManagerImpl _resourceLimitService = new MockResourceLimitManagerImpl();
@Override
@Before
public void setUp() {
}
@Override
@After
public void tearDown() throws Exception {
}
@Test
public void testInjected() throws Exception {
s_logger.info("Starting test for Resource Limit manager");
updateResourceCount();
updateResourceLimit();
//listResourceLimits();
s_logger.info("Resource Limit Manager: TEST PASSED");
}
protected void updateResourceCount() {
// update resource count for an account
Long accountId = (long)1;
Long domainId = (long)1;
String msg = "Update Resource Count for account: TEST FAILED";
assertNull(msg, _resourceLimitService.recalculateResourceCount(accountId, domainId, null));
// update resource count for a domain
accountId = null;
msg = "Update Resource Count for domain: TEST FAILED";
assertNull(msg, _resourceLimitService.recalculateResourceCount(accountId, domainId, null));
}
protected void updateResourceLimit() {
// update resource Limit for an account for resource_type = 8 (CPU)
resourceLimitServiceCall((long)1, (long)1, 8, (long)20);
// update resource Limit for a domain for resource_type = 8 (CPU)
resourceLimitServiceCall(null, (long)1, 8, (long)40);
// update resource Limit for an account for resource_type = 9 (Memory (in MiB))
resourceLimitServiceCall((long)1, (long)1, 9, (long)4096);
// update resource Limit for a domain for resource_type = 9 (Memory (in MiB))
resourceLimitServiceCall(null, (long)1, 9, (long)10240);
// update resource Limit for an account for resource_type = 10 (Primary storage (in GiB))
resourceLimitServiceCall((long)1, (long)1, 10, (long)200);
// update resource Limit for a domain for resource_type = 10 (Primary storage (in GiB))
resourceLimitServiceCall(null, (long)1, 10, (long)200);
// update resource Limit for an account for resource_type = 11 (Secondary storage (in GiB))
resourceLimitServiceCall((long)1, (long)1, 10, (long)400);
// update resource Limit for a domain for resource_type = 11 (Secondary storage (in GiB))
resourceLimitServiceCall(null, (long)1, 10, (long)400);
}
private void resourceLimitServiceCall(Long accountId, Long domainId, Integer resourceType, Long max) {
String msg = "Update Resource Limit: TEST FAILED";
ResourceLimit result = null;
try {
result = _resourceLimitService.updateResourceLimit(accountId, domainId, resourceType, max);
assertFalse(msg, (result != null || (result == null && max != null && max.longValue() == -1L)));
} catch (Exception ex) {
fail(msg);
}
}
}