package org.springframework.amqp.connection;
import junit.framework.TestCase;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Address;
import java.net.InetAddress;
import java.util.UUID;
import java.util.List;
import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicBoolean;
import java.io.IOException;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEvent;
public class ConnectionFactoryBeanTest extends AbstractConnectionTest {
public void testConnectDefaultLocal() throws Exception {
Connection connection = connect();
}
public void testMultiple() throws Exception {
connectionFactoryBean.setAddresses(new Address("localhost", ConnectionFactoryBean.DEFAULT_PORT),
new Address(InetAddress.getLocalHost().getHostName(), ConnectionFactoryBean.DEFAULT_PORT));
Connection connection = connect();
}
public void testInvalidCredentials() throws Exception {
connectionFactoryBean.setUsername(UUID.randomUUID().toString());
connectionFactoryBean.setPassword(UUID.randomUUID().toString());
try {
Connection connection = connect();
fail();
} catch(IOException e) {
}
connectionFactoryBean.setUsername(ConnectionFactoryBean.DEFAULT_USER);
connectionFactoryBean.setPassword(ConnectionFactoryBean.DEFAULT_PASS);
Connection connection = connect();
}
public void testEvent() throws Exception {
final List<ApplicationEvent> applicationEvents = new ArrayList<ApplicationEvent>();
connectionFactoryBean.setApplicationEventPublisher(new ApplicationEventPublisher() {
public void publishEvent(ApplicationEvent applicationEvent) {
System.out.println("ConnectionFactoryBeanTest.publishEvent");
applicationEvents.add(applicationEvent);
}
});
Thread thread = new Thread() {
@Override
public void run() {
while (applicationEvents.size() == 0)
Thread.yield();
System.out.println("ConnectionFactoryBeanTest.run");
assertTrue(applicationEvents.iterator().next() instanceof Shutdown);
}
};
thread.start();
connect();
}
}