/* * Copyright (c) 2012 EMC Corporation * All Rights Reserved */ package com.emc.storageos.cimadapter.connections.ecom; import java.util.ArrayList; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import com.emc.storageos.cimadapter.connections.cim.CimConnectionInfo; import com.emc.storageos.cimadapter.connections.cim.CimConstants; import com.emc.storageos.cimadapter.connections.cim.CimFilterMap; import com.emc.storageos.cimadapter.connections.cim.CimListener; import com.emc.storageos.cimadapter.connections.cim.CimListenerInfo; import com.emc.storageos.cimadapter.consumers.CimIndicationConsumer; import com.emc.storageos.cimadapter.consumers.CimIndicationConsumerList; import com.emc.storageos.cimadapter.processors.CimIndicationProcessor; import com.emc.storageos.cimadapter.processors.EcomIndicationProcessor; import com.emc.storageos.services.util.EnvConfig; /** * JUnit test class for {@link EcomConnection}. */ public class EcomConnectionTest { private static final String UNIT_TEST_CONFIG_FILE = "sanity"; private static final String providerIP = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.host.ipaddress"); private static final String providerPortStr = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.host.port"); private static final int providerPort = Integer.parseInt(providerPortStr); private static final String providerUser = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.host.username"); private static final String providerPassword = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.host.password"); private static final String providerUseSsl = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.usessl"); private static final String providerNamespace = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.namespace"); private static final String providerInterOpNamespace = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.interop.namespace"); private static boolean isProviderSslEnabled = Boolean.parseBoolean(providerUseSsl); private static final String LISTENER_IP = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.listener.ipaddress"); private static final String LISTENER_PROTOCOL = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.listener.protocol"); private static final String LISTENER_PORT_STR = EnvConfig.get(UNIT_TEST_CONFIG_FILE, "smis.listener.port"); private static final int LISTENER_PORT = Integer.parseInt(LISTENER_PORT_STR); private static final int LISTENER_QUEUE_SIZE = 1000; // Connection reference. private static volatile EcomConnection _connection = null; /** * Creates a connection required by the ECOM processor. * * @return A connection required by the ECOM processor. */ @BeforeClass public static void createEcomConnection() { boolean wasException = false; try { _connection = new EcomConnection(createConnectionInfo(), createListener(), new CimFilterMap()); } catch (Exception e) { wasException = true; } Assert.assertFalse(wasException); } /** * Creates the connection info for the connection. * * @return The connection info for the connection */ private static CimConnectionInfo createConnectionInfo() { CimConnectionInfo connectionInfo = new CimConnectionInfo(); connectionInfo.setType(CimConstants.ECOM_CONNECTION_TYPE); connectionInfo.setHost(providerIP); connectionInfo.setPort(providerPort); connectionInfo.setUser(providerUser); connectionInfo.setPassword(providerPassword); connectionInfo.setInteropNS(providerInterOpNamespace); connectionInfo.setImplNS(providerNamespace); connectionInfo.setUseSSL(isProviderSslEnabled); return connectionInfo; } /** * Creates the listener for the connection. * * @return The listener for the connection. */ private static CimListener createListener() { CimListenerInfo listenerInfo = new CimListenerInfo(); listenerInfo.setHostIP(LISTENER_IP); listenerInfo.setPort(LISTENER_PORT); listenerInfo.setProtocol(LISTENER_PROTOCOL); listenerInfo.setQueueSize(LISTENER_QUEUE_SIZE); ArrayList<CimIndicationConsumer> consumers = new ArrayList<CimIndicationConsumer>(); CimListener listener = new CimListener(listenerInfo, new CimIndicationConsumerList(consumers)); return listener; } /** * Tests the getConnectionType method. */ @Test public void testGetConnectionType() { Assert.assertNotNull(_connection); Assert.assertEquals(_connection.getConnectionType(), CimConstants.ECOM_CONNECTION_TYPE); } /** * Tests the getDefaultIndicationProcessor method. */ @Test public void testGetDefaultIndicationProcessor() { Assert.assertNotNull(_connection); CimIndicationProcessor processor = _connection.getDefaultIndicationProcessor(); Assert.assertNotNull(processor); Assert.assertTrue(processor instanceof EcomIndicationProcessor); } }