package org.skyscreamer.nevado.jms.facilities;
import junit.framework.Assert;
import org.junit.Test;
import org.skyscreamer.nevado.jms.AbstractJMSTest;
import org.skyscreamer.nevado.jms.NevadoConnectionFactory;
import org.skyscreamer.nevado.jms.connector.mock.MockSQSConnectorFactory;
import org.skyscreamer.nevado.jms.util.RandomData;
import javax.jms.*;
/**
* Tests for overriding the endpoints
*
* @author Carter Page <carter@skyscreamer.org>
*/
public class ConnectionFactoryEndpointTest extends AbstractJMSTest {
@Test
public void testChangedEndpoints() throws JMSException
{
NevadoConnectionFactory connectionFactory = new NevadoConnectionFactory(_sqsConnectorFactory);
connectionFactory.setAwsSQSEndpoint("http://sqs.us-east-1.amazonaws.com");
connectionFactory.setAwsSNSEndpoint("http://sns.us-east-1.amazonaws.com");
Connection connection = createConnection(connectionFactory);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
TemporaryQueue queue = session.createTemporaryQueue();
MessageProducer producer = session.createProducer(queue);
MessageConsumer consumer = session.createConsumer(queue);
TextMessage testMessage = session.createTextMessage(RandomData.readString());
producer.send(testMessage);
Message msgOut = consumer.receive(1000);
Assert.assertNotNull(msgOut);
Assert.assertTrue(msgOut instanceof TextMessage);
Assert.assertEquals(testMessage, (TextMessage)msgOut);
connection.close();
}
@Test(expected = ResourceAllocationException.class)
public void testBadSQSEndpoint() throws JMSException
{
NevadoConnectionFactory connectionFactory = new NevadoConnectionFactory(_sqsConnectorFactory);
connectionFactory.setAwsSQSEndpoint(MockSQSConnectorFactory.BAD_ENDPOINT_URL);
Connection connection = createConnection(connectionFactory);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
TemporaryQueue queue = session.createTemporaryQueue();
MessageProducer producer = session.createProducer(queue);
MessageConsumer consumer = session.createConsumer(queue);
TextMessage testMessage = session.createTextMessage(RandomData.readString());
producer.send(testMessage);
Message msgOut = consumer.receive(1000);
Assert.assertNotNull(msgOut);
Assert.assertTrue(msgOut instanceof TextMessage);
Assert.assertEquals(testMessage, (TextMessage)msgOut);
connection.close();
}
@Test(expected = ResourceAllocationException.class)
public void testBadSNSEndpoint() throws JMSException
{
NevadoConnectionFactory connectionFactory = new NevadoConnectionFactory(_sqsConnectorFactory);
connectionFactory.setAwsSNSEndpoint(MockSQSConnectorFactory.BAD_ENDPOINT_URL);
Connection connection = createConnection(connectionFactory);
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
TemporaryQueue queue = session.createTemporaryQueue();
MessageProducer producer = session.createProducer(queue);
MessageConsumer consumer = session.createConsumer(queue);
TextMessage testMessage = session.createTextMessage(RandomData.readString());
producer.send(testMessage);
Message msgOut = consumer.receive(1000);
Assert.assertNotNull(msgOut);
Assert.assertTrue(msgOut instanceof TextMessage);
Assert.assertEquals(testMessage, (TextMessage)msgOut);
connection.close();
}
}