package org.skyscreamer.nevado.jms.resource;
import org.junit.Assert;
import org.junit.Test;
import org.skyscreamer.nevado.jms.AbstractJMSTest;
import org.skyscreamer.nevado.jms.NevadoConnectionFactory;
import org.skyscreamer.nevado.jms.destination.NevadoQueue;
import org.skyscreamer.nevado.jms.destination.NevadoTopic;
import org.skyscreamer.nevado.jms.util.RandomData;
import org.skyscreamer.nevado.jms.util.SerializeUtil;
import javax.jms.JMSException;
import java.io.IOException;
import java.util.Random;
/**
* Tests for serializable (JMS 1.1, Sec 4.2)
*
* @author Carter Page <carter@skyscreamer.org>
*/
public class SerializableTest extends AbstractJMSTest {
private static final String TEST_ACCESS_KEY = RandomData.readString();
private static final String TEST_SECRET_KEY = RandomData.readString();
private static final String TEST_CLIENT_ID = RandomData.readString();
private static final Integer TEST_DELIVERY_MODE = (int)RandomData.readShort();
private static final Integer TEST_PRIORITY = (new Random()).nextInt(10);
private static final Long TEST_TTL = (long)RandomData.readInt();
@Test
public void testConnectionFactory() throws IOException {
NevadoConnectionFactory connectionFactory = new NevadoConnectionFactory();
connectionFactory.setAwsAccessKey(TEST_ACCESS_KEY);
connectionFactory.setAwsSecretKey(TEST_SECRET_KEY);
connectionFactory.setClientID(TEST_CLIENT_ID);
connectionFactory.setOverrideJMSDeliveryMode(TEST_DELIVERY_MODE);
connectionFactory.setOverrideJMSPriority(TEST_PRIORITY);
connectionFactory.setOverrideJMSTTL(TEST_TTL);
NevadoConnectionFactory testConnectionFactory =
(NevadoConnectionFactory) SerializeUtil.deserialize(SerializeUtil.serialize(connectionFactory));
Assert.assertEquals(connectionFactory.getAwsAccessKey(), testConnectionFactory.getAwsAccessKey());
Assert.assertEquals(connectionFactory.getAwsSecretKey(), testConnectionFactory.getAwsSecretKey());
Assert.assertEquals(connectionFactory.getClientID(), testConnectionFactory.getClientID());
Assert.assertEquals(connectionFactory.getJMSDeliveryMode(), testConnectionFactory.getJMSDeliveryMode());
Assert.assertEquals(connectionFactory.getJMSPriority(), testConnectionFactory.getJMSPriority());
Assert.assertEquals(connectionFactory.getJMSTTL(), testConnectionFactory.getJMSTTL());
}
@Test
public void testQueue() throws IOException, JMSException {
NevadoQueue queue = createTempQueue(createSession());
NevadoQueue testQueue = (NevadoQueue) SerializeUtil.deserialize(SerializeUtil.serialize(queue));
Assert.assertEquals(queue, testQueue);
}
@Test
public void testTopic() throws IOException, JMSException {
NevadoTopic topic = createTempTopic(createSession());
NevadoTopic testTopic = (NevadoTopic) SerializeUtil.deserialize(SerializeUtil.serialize(topic));
Assert.assertEquals(topic, testTopic);
}
}