package org.springframework.cloud.heroku; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.when; import java.util.HashMap; import java.util.List; import java.util.Map; import org.junit.Test; import org.springframework.cloud.service.ServiceInfo; import org.springframework.cloud.service.common.AmqpServiceInfo; /** * @author Ramnivas Laddad */ public class HerokuConnectorAmqpServiceTest extends AbstractHerokuConnectorTest { @Test public void amqpServiceCreation() { Map<String, String> env = new HashMap<String, String>(); String amqpUrl = getAmqpServiceUrl("db"); env.put("CLOUDAMQP_URL", amqpUrl); when(mockEnvironment.getEnv()).thenReturn(env); List<ServiceInfo> serviceInfos = testCloudConnector.getServiceInfos(); ServiceInfo serviceInfo = getServiceInfo(serviceInfos, "CLOUDAMQP"); assertNotNull(serviceInfo); assertTrue(serviceInfo instanceof AmqpServiceInfo); assertAmqpServiceInfo((AmqpServiceInfo) serviceInfo, "db"); } private String getAmqpServiceUrl(String name) { String template = "amqp://$username:$password@$hostname:$port/$virtualHost"; return template.replace("$username", username). replace("$password", password). replace("$hostname", hostname). replace("$port", Integer.toString(port)). replace("$virtualHost", name); } protected void assertAmqpServiceInfo(AmqpServiceInfo serviceInfo, String virtualHost) { assertEquals(hostname, serviceInfo.getHost()); assertEquals(port, serviceInfo.getPort()); assertEquals(username, serviceInfo.getUserName()); assertEquals(password, serviceInfo.getPassword()); assertEquals(virtualHost, serviceInfo.getPath()); } }