| // 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 junit.framework.TestCase; | |
| import org.apache.log4j.Logger; | |
| import org.junit.After; | |
| import org.junit.Before; | |
| import org.junit.Test; | |
| import com.cloud.configuration.ResourceLimit; | |
| import com.cloud.vpc.MockResourceLimitManagerImpl; | |
| 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); | |
| } | |
| } | |
| } |