package org.ow2.choreos.ee.bus;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.ow2.choreos.ee.bus.EasyESBException;
import org.ow2.choreos.ee.bus.EasyESBNode;
import org.ow2.choreos.ee.bus.EasyESBNodeImpl;
import org.ow2.choreos.ee.bus.LinagoraFactory;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import com.ebmwebsourcing.esstar.management.UserManagementClient;
public class EasyESBNodeImplTest {
private static final String PUBLIC_IP = "54.10.15.1";
private static final String PRIVATE_IP = "10.0.0.2";
private static final String ADMIN_ENDPOINT = "http://" + PUBLIC_IP + ":8180/services/adminExternalEndpoint";
// how it is returned by linagora api:
private static final String PROXIFIED_ADDRESS = "http://" + PRIVATE_IP + ":8180/services/AirlineServicePortClientProxyEndpoint";
// how it must be saved by us, so we can access the service:
private static final String EXPECTED_PROXIFIED_ADDRESS = "http://" + PUBLIC_IP + ":8180/services/AirlineServicePortClientProxyEndpoint";
private LinagoraFactory linagoraFactoryMock;
@Before
public void setUp() throws Exception {
UserManagementClient userManagementClientMock = mock(UserManagementClient.class);
when(userManagementClientMock.proxify(any(String.class), any(String.class))).thenReturn(PROXIFIED_ADDRESS);
linagoraFactoryMock = mock(LinagoraFactory.class);
when(linagoraFactoryMock.getUserManagementClient(any(String.class))).thenReturn(userManagementClientMock);
}
@Test
public void shouldReturnValidProxifiedAddress() throws EasyESBException {
EasyESBNode esb = new EasyESBNodeImpl(ADMIN_ENDPOINT, linagoraFactoryMock);
String serviceUri = "http://10.0.0.3/airline";
String proxifiedAddress = esb.proxifyService(serviceUri, serviceUri + "?wsdl");
assertEquals(EXPECTED_PROXIFIED_ADDRESS, proxifiedAddress);
}
}