package org.springframework.cloud.service.rabbit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.junit.Test;
import org.springframework.cloud.service.common.AmqpServiceInfo;
/**
*
* @author Ramnivas Laddad
*
*/
public class RabbitServiceInfoTest {
@Test
public void uriBasedParsing() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqp://myuser:mypass@myhost:12345/myvhost");
assertEquals("myhost", serviceInfo.getHost());
assertEquals(12345, serviceInfo.getPort());
assertEquals("myuser", serviceInfo.getUserName());
assertEquals("mypass", serviceInfo.getPassword());
assertEquals("myvhost", serviceInfo.getVirtualHost());
}
@Test
public void uriBasedParsingDefaultVhost() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqp://myuser:mypass@myhost:12345/");
assertEquals("myhost", serviceInfo.getHost());
assertEquals(12345, serviceInfo.getPort());
assertEquals("myuser", serviceInfo.getUserName());
assertEquals("mypass", serviceInfo.getPassword());
assertNull(serviceInfo.getVirtualHost());
}
@Test(expected=IllegalArgumentException.class)
public void missingScheme() {
new AmqpServiceInfo("id", "://myuser:mypass@:12345/myvhost");
}
@Test
public void amqpsSchemeAccepted() {
AmqpServiceInfo serviceInfo = new AmqpServiceInfo("id", "amqps://myuser:mypass@myhost:12345/myvhost");
assertEquals("amqps", serviceInfo.getScheme());
}
@Test(expected=IllegalArgumentException.class)
public void missingHost() {
new AmqpServiceInfo("id", "amqp://myuser:mypass@:12345/myvhost");
}
@Test(expected=IllegalArgumentException.class)
public void badUserInfo() {
new AmqpServiceInfo("id", "amqp://myuser@myhost/myvhost");
}
@Test(expected=IllegalArgumentException.class)
public void missingUserInfo() {
new AmqpServiceInfo("id", "amqp://myhost:12345/myvhost");
}
@Test(expected=IllegalArgumentException.class)
public void badVirtualHost() {
new AmqpServiceInfo("id", "amqp://myuser:mypass@myhost:12345/a/b");
}
}