package org.skyscreamer.nevado.jms.message;
import org.junit.Test;
import org.skyscreamer.nevado.jms.AbstractJMSTest;
import org.junit.Assert;
import javax.jms.*;
/**
* Tests expected handling of null values in message headers and bodies.
*
* @author Carter Page <carter@skyscreamer.org>
*/
public class NullValuesTest extends AbstractJMSTest {
@Test
public void testMessageHeadersAndProperties() throws JMSException {
Message msg = createSession().createMessage();
msg.setJMSCorrelationID(null);
Assert.assertNull(msg.getJMSCorrelationID());
msg.setJMSCorrelationIDAsBytes(null);
Assert.assertNull(msg.getJMSCorrelationIDAsBytes());
msg.setJMSDestination(null);
Assert.assertNull(msg.getJMSDestination());
msg.setJMSMessageID(null);
Assert.assertNull(msg.getJMSMessageID());
msg.setJMSReplyTo(null);
Assert.assertNull(msg.getJMSReplyTo());
msg.setJMSType(null);
Assert.assertNull(msg.getJMSType());
msg.setObjectProperty("key", null);
Assert.assertNull(msg.getObjectProperty("key"));
msg.setStringProperty("key", null);
Assert.assertNull(msg.getObjectProperty("key"));
}
@Test(expected = NullPointerException.class)
public void testBytesMessage() throws JMSException {
BytesMessage bytesMessage = createSession().createBytesMessage();
bytesMessage.writeBytes(null);
}
@Test
public void testMapMessage() throws JMSException {
MapMessage mapMsg = createSession().createMapMessage();
mapMsg.setObject("key", null);
Assert.assertNull(mapMsg.getObject("key"));
mapMsg.setString("key", null);
Assert.assertNull(mapMsg.getString("key"));
mapMsg.setBytes("key", null);
Assert.assertNull(mapMsg.getBytes("key"));
}
@Test
public void testObjectMessage() throws JMSException {
ObjectMessage objMsg = createSession().createObjectMessage();
objMsg.setObject(null);
Assert.assertNull(objMsg.getObject());
}
@Test
public void testTextMessage() throws JMSException {
TextMessage textMsg = createSession().createTextMessage();
textMsg.setText(null);
Assert.assertNull(textMsg.getText());
}
@Test
public void testStreamMessage() throws JMSException {
NevadoStreamMessage streamMsg = (NevadoStreamMessage) createSession().createStreamMessage();
streamMsg.writeInt(1);
streamMsg.writeString(null);
streamMsg.writeInt(2);
streamMsg.writeObject(null);
streamMsg.writeInt(3);
streamMsg.onSend();
Assert.assertEquals(1, streamMsg.readInt());
Assert.assertNull(streamMsg.readString());
Assert.assertEquals(2, streamMsg.readInt());
Assert.assertNull(streamMsg.readString());
Assert.assertEquals(3, streamMsg.readInt());
}
// Technically a primitive array, byte[] should not be null
@Test(expected = NullPointerException.class)
public void testStreamMessageNullBytes() throws JMSException {
NevadoStreamMessage streamMsg = (NevadoStreamMessage) createSession().createStreamMessage();
streamMsg.writeBytes(null);
}
}