// 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); } } }