package org.skyscreamer.nevado.jms.properties;
import junit.framework.Assert;
import org.junit.Test;
import org.skyscreamer.nevado.jms.AbstractJMSTest;
import org.skyscreamer.nevado.jms.destination.NevadoQueue;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageFormatException;
import java.util.HashMap;
/**
* Test for section 3.5.2 of the JMS 1.1 Specification.
*
* @author Carter Page <carter@skyscreamer.org>
*/
public class PropertyValueTest extends AbstractJMSTest {
private static final Object[] INVALID_VALUE_OBJECTS = {new Object(), new HashMap(), new NevadoQueue("X")};
@Test
public void testValidValues() throws JMSException {
Message msg = createSession().createMessage();
msg.setObjectProperty("boolean", true);
msg.setObjectProperty("byte", new Byte("1"));
msg.setObjectProperty("short", new Short("123"));
msg.setObjectProperty("int", 1234567);
msg.setObjectProperty("long", 12345678901L);
msg.setObjectProperty("float", 123.456f);
msg.setObjectProperty("double", 1234567890.0987654321d);
}
@Test
public void testInvalidValues() throws JMSException {
Message msg = createSession().createMessage();
for (Object o : INVALID_VALUE_OBJECTS) {
try {
msg.setObjectProperty("otherObject", new Object());
}
catch (MessageFormatException e) {
// Expected
continue;
}
Assert.fail("Did not throw expected exception for value of type " + o.getClass().getName());
}
}
}