blob: dd6a4fab6a48adef007be7a712c22da043fda823 [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.vpc;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import junit.framework.Assert;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.cloud.configuration.DefaultInterceptorLibrary;
import com.cloud.network.dao.IPAddressDaoImpl;
import com.cloud.network.dao.Site2SiteCustomerGatewayDaoImpl;
import com.cloud.network.dao.Site2SiteVpnConnectionDao;
import com.cloud.network.dao.Site2SiteVpnConnectionDaoImpl;
import com.cloud.network.dao.Site2SiteVpnGatewayDaoImpl;
import com.cloud.network.element.Site2SiteVpnServiceProvider;
import com.cloud.network.vpc.dao.VpcDaoImpl;
import com.cloud.network.vpn.Site2SiteVpnManagerImpl;
import com.cloud.user.MockAccountManagerImpl;
import com.cloud.user.dao.AccountDaoImpl;
import com.cloud.utils.Pair;
import com.cloud.utils.component.ComponentLocator;
import com.cloud.utils.component.Inject;
import com.cloud.utils.component.MockComponentLocator;
import com.cloud.vpc.dao.MockConfigurationDaoImpl;
public class Site2SiteVpnTest {
private MockComponentLocator locator;
private final static Logger s_logger = Logger.getLogger(Site2SiteVpnTest.class);
private static void addDaos(MockComponentLocator locator) {
locator.addDao("AccountDao", AccountDaoImpl.class);
locator.addDao("Site2SiteCustomerGatewayDao", Site2SiteCustomerGatewayDaoImpl.class);
locator.addDao("Site2SiteVpnGatewayDao", Site2SiteVpnGatewayDaoImpl.class);
locator.addDao("Site2SiteVpnConnectionDao", Site2SiteVpnConnectionDaoImpl.class);
locator.addDao("IPAddressDao", IPAddressDaoImpl.class);
locator.addDao("VpcDao", VpcDaoImpl.class);
locator.addDao("ConfiguratioDao", MockConfigurationDaoImpl.class);
}
private static void addManagers(MockComponentLocator locator) {
locator.addManager("AccountManager", MockAccountManagerImpl.class);
locator.addManager("VpcManager", MockVpcManagerImpl.class);
}
@Before
public void setUp() {
locator = new MockComponentLocator("management-server");
addDaos(locator);
addManagers(locator);
s_logger.info("Finished setUp");
}
@After
public void tearDown() throws Exception {
}
@Test
public void testInjected() throws Exception {
List<Pair<String, Class<? extends Site2SiteVpnServiceProvider>>> list =
new ArrayList<Pair<String, Class<? extends Site2SiteVpnServiceProvider>>>();
list.add(new Pair<String, Class<? extends Site2SiteVpnServiceProvider>>("Site2SiteVpnServiceProvider", MockSite2SiteVpnServiceProvider.class));
locator.addAdapterChain(Site2SiteVpnServiceProvider.class, list);
s_logger.info("Finished add adapter");
locator.makeActive(new DefaultInterceptorLibrary());
s_logger.info("Finished make active");
Site2SiteVpnManagerImpl vpnMgr = ComponentLocator.inject(Site2SiteVpnManagerImpl.class);
s_logger.info("Finished inject");
Assert.assertTrue(vpnMgr.configure("Site2SiteVpnMgr",new HashMap<String, Object>()) );
Assert.assertTrue(vpnMgr.start());
}
}