blob: 139b65d42dba3fd2ca94f0ae8f0e811de43af822 [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
// with 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.usage;
import java.util.Date;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
import junit.framework.TestCase;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.cloud.usage.parser.IPAddressUsageParser;
import com.cloud.usage.parser.LoadBalancerUsageParser;
import com.cloud.usage.parser.NetworkOfferingUsageParser;
import com.cloud.usage.parser.NetworkUsageParser;
import com.cloud.usage.parser.PortForwardingUsageParser;
import com.cloud.usage.parser.SecurityGroupUsageParser;
import com.cloud.usage.parser.StorageUsageParser;
import com.cloud.usage.parser.VMInstanceUsageParser;
import com.cloud.usage.parser.VPNUserUsageParser;
import com.cloud.usage.parser.VmDiskUsageParser;
import com.cloud.usage.parser.VolumeUsageParser;
import com.cloud.user.AccountVO;
import com.cloud.utils.component.ComponentContext;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/UsageManagerTestContext.xml")
public class UsageManagerTest extends TestCase {
@Inject
UsageManagerImpl _usageMgr = null;
@Inject
VMInstanceUsageParser vmParser = null;
@Inject
IPAddressUsageParser ipParser = null;
@Inject
LoadBalancerUsageParser lbParser = null;
@Inject
NetworkOfferingUsageParser noParser = null;
@Inject
NetworkUsageParser netParser = null;
@Inject
VmDiskUsageParser vmdiskParser = null;
@Inject
PortForwardingUsageParser pfParser = null;
@Inject
SecurityGroupUsageParser sgParser = null;
@Inject
StorageUsageParser stParser = null;
@Inject
VolumeUsageParser volParser = null;
@Inject
VPNUserUsageParser vpnParser = null;
Date startDate = null;
Date endDate = null;
@Before
public void setup() throws Exception {
System.setProperty("pid", "5678");
ComponentContext.initComponentsLifeCycle();
startDate = new Date();
endDate = new Date(100000L + System.currentTimeMillis());
}
@Test
public void testParse() throws ConfigurationException {
UsageJobVO job = new UsageJobVO();
_usageMgr.parse(job, System.currentTimeMillis(), 100000L + System.currentTimeMillis());
}
@Test
public void testSchedule() throws ConfigurationException {
_usageMgr.scheduleParse();
}
@Test
public void testParsers() throws ConfigurationException {
AccountVO account = new AccountVO();
account.setId(2L);
VMInstanceUsageParser.parse(account, startDate, endDate);
IPAddressUsageParser.parse(account, startDate, endDate);
LoadBalancerUsageParser.parse(account, startDate, endDate);
NetworkOfferingUsageParser.parse(account, startDate, endDate);
NetworkUsageParser.parse(account, startDate, endDate);
VmDiskUsageParser.parse(account, startDate, endDate);
PortForwardingUsageParser.parse(account, startDate, endDate);
SecurityGroupUsageParser.parse(account, startDate, endDate);
StorageUsageParser.parse(account, startDate, endDate);
VolumeUsageParser.parse(account, startDate, endDate);
VPNUserUsageParser.parse(account, startDate, endDate);
}
}