1 22 package org.jboss.test.jbossmessaging.test; 23 24 import java.util.Arrays ; 25 import java.math.BigInteger ; 26 import javax.jms.DeliveryMode ; 27 import javax.jms.MapMessage ; 28 import javax.jms.Message ; 29 import javax.jms.Queue ; 30 import javax.jms.QueueConnection ; 31 import javax.jms.QueueConnectionFactory ; 32 import javax.jms.QueueReceiver ; 33 import javax.jms.QueueSender ; 34 import javax.jms.QueueSession ; 35 import javax.jms.Session ; 36 import javax.jms.TextMessage ; 37 import javax.jms.BytesMessage ; 38 import javax.jms.ObjectMessage ; 39 import javax.jms.StreamMessage ; 40 import javax.naming.Context ; 41 import javax.naming.InitialContext ; 42 43 import org.jboss.test.jbossmessaging.JMSTestCase; 44 45 52 public class MessageTypesUnitTestCase extends JMSTestCase 53 { 54 static String QUEUE_FACTORY = "ConnectionFactory"; 55 static String TEST_QUEUE = "queue/testQueue"; 56 57 private Context context; 58 private QueueConnection queueConnection; 59 private QueueSession session; 60 private QueueSender sender; 61 private QueueReceiver receiver; 62 63 public MessageTypesUnitTestCase(String name) throws Exception 64 { 65 super(name); 66 } 67 68 public void testMapMessage() throws Exception 69 { 70 log.info("+++ testMapMessage"); 71 MapMessage sent = session.createMapMessage(); 72 sent.setBoolean("Boolean", true); 73 sent.setByte("Byte", (byte) 1); 74 sent.setBytes("Bytes", "Bytes".getBytes()); 75 sent.setChar("Char", 'c'); 76 sent.setShort("Short", (short) 31415); 77 sent.setInt("Int", 314159); 78 sent.setLong("Long", 3141592653589793238L); 79 sent.setDouble("Double", 3.1415926535897932384626433832795); 80 sent.setFloat("Float", 3.141f); 81 sent.setObject("Object", "31415926535897932384626433832795"); 82 sent.setString("String", "31415926535897932384626433832795"); 83 84 MapMessage recv = (MapMessage ) sendRecMsg(sent); 85 log.debug("recv: "+recv); 86 assertTrue("Boolean == true", recv.getBoolean("Boolean") == true); 87 assertTrue("Byte == 1", recv.getByte("Byte") == 1); 88 assertTrue("Bytes == Bytes[]", 89 Arrays.equals(recv.getBytes("Bytes"), "Bytes".getBytes())); 90 assertTrue("Char == c", recv.getChar("Char") == 'c'); 91 assertTrue("Short == 314159", recv.getShort("Short") == 31415); 92 assertTrue("Int == 314159", recv.getInt("Int") == 314159); 93 assertTrue("Long == 3141592653589793238L", 94 recv.getLong("Long") == 3141592653589793238L); 95 assertTrue("Double == 3.1415926535897932384626433832795", 96 recv.getDouble("Double") == 3.1415926535897932384626433832795); 97 assertTrue("Float == true", recv.getFloat("Float") == 3.141f); 98 assertTrue("Object == 31415926535897932384626433832795", 99 recv.getObject("Object").equals("31415926535897932384626433832795")); 100 assertTrue("String == 31415926535897932384626433832795", 101 recv.getString("String").equals("31415926535897932384626433832795")); 102 } 103 public void testTextMessage() throws Exception 104 { 105 log.info("+++ testTextMessage"); 106 String text = "A multiline text msg.\nSecond line.\n"; 107 TextMessage sent = session.createTextMessage(text); 108 TextMessage recv = (TextMessage ) sendRecMsg(sent); 109 log.debug("recv: "+recv); 110 assertTrue(recv.getText().equals(text)); 111 } 112 public void testMessage() throws Exception 113 { 114 log.info("+++ testMessage"); 115 Message sent = session.createMessage(); 116 sent.setBooleanProperty("Boolean", true); 117 sent.setByteProperty("Byte", (byte) 1); 118 sent.setShortProperty("Short", (short) 31415); 119 sent.setIntProperty("Int", 314159); 120 sent.setLongProperty("Long", 3141592653589793238L); 121 sent.setDoubleProperty("Double", 3.1415926535897932384626433832795); 122 sent.setFloatProperty("Float", 3.141f); 123 sent.setObjectProperty("Object", "31415926535897932384626433832795"); 124 sent.setStringProperty("String", "31415926535897932384626433832795"); 125 126 Message recv = sendRecMsg(sent); 127 log.debug("recv: "+recv); 128 assertTrue("Boolean == true", recv.getBooleanProperty("Boolean") == true); 129 assertTrue("Byte == 1", recv.getByteProperty("Byte") == 1); 130 assertTrue("Short == 314159", recv.getShortProperty("Short") == 31415); 131 assertTrue("Int == 314159", recv.getIntProperty("Int") == 314159); 132 assertTrue("Long == 3141592653589793238L", 133 recv.getLongProperty("Long") == 3141592653589793238L); 134 assertTrue("Double == 3.1415926535897932384626433832795", 135 recv.getDoubleProperty("Double") == 3.1415926535897932384626433832795); 136 assertTrue("Float == true", recv.getFloatProperty("Float") == 3.141f); 137 assertTrue("Object == 31415926535897932384626433832795", 138 recv.getObjectProperty("Object").equals("31415926535897932384626433832795")); 139 assertTrue("String == 31415926535897932384626433832795", 140 recv.getStringProperty("String").equals("31415926535897932384626433832795")); 141 } 142 public void testBytesMessage() throws Exception 143 { 144 log.info("+++ testBytesMessage"); 145 BytesMessage sent = session.createBytesMessage(); 146 sent.writeBoolean(true); 147 sent.writeByte((byte) 1); 148 byte[] testBytes = "Bytes".getBytes(); 149 sent.writeBytes(testBytes); 150 sent.writeChar('c'); 151 sent.writeShort((short) 31415); 152 sent.writeInt(314159); 153 sent.writeLong(3141592653589793238L); 154 sent.writeDouble(3.1415926535897932384626433832795); 155 sent.writeFloat(3.141f); 156 sent.writeObject("31415926535897932384626433832795"); 157 sent.writeUTF("31415926535897932384626433832795"); 158 159 BytesMessage recv = (BytesMessage ) sendRecMsg(sent); 160 log.debug("recv: "+recv); 161 assertTrue("Boolean == true", recv.readBoolean() == true); 162 assertTrue("Byte == 1", recv.readByte() == 1); 163 byte[] bytes = new byte[testBytes.length]; 164 recv.readBytes(bytes); 165 assertTrue("Bytes == Bytes[]", 166 Arrays.equals(bytes, testBytes)); 167 assertTrue("Char == c", recv.readChar() == 'c'); 168 assertTrue("Short == 314159", recv.readShort() == 31415); 169 assertTrue("Int == 314159", recv.readInt() == 314159); 170 assertTrue("Long == 3141592653589793238L", 171 recv.readLong() == 3141592653589793238L); 172 assertTrue("Double == 3.1415926535897932384626433832795", 173 recv.readDouble() == 3.1415926535897932384626433832795); 174 assertTrue("Float == true", recv.readFloat() == 3.141f); 175 assertTrue("Object == 31415926535897932384626433832795", 176 recv.readUTF().equals("31415926535897932384626433832795")); 177 assertTrue("String == 31415926535897932384626433832795", 178 recv.readUTF().equals("31415926535897932384626433832795")); 179 } 180 public void testObjectMessage() throws Exception 181 { 182 log.info("+++ testObjectMessage"); 183 BigInteger data = new BigInteger ("31415926535897932384626433832795", 10); 184 ObjectMessage sent = session.createObjectMessage(data); 185 ObjectMessage recv = (ObjectMessage ) sendRecMsg(sent); 186 log.debug("recv: "+recv); 187 BigInteger data2 = (BigInteger ) recv.getObject(); 188 assertTrue("BigInteger == BigInteger2", data2.equals(data)); 189 } 190 public void testStreamMessage() throws Exception 191 { 192 log.info("+++ testStreamMessage"); 193 StreamMessage sent = session.createStreamMessage(); 194 sent.writeBoolean(true); 195 sent.writeByte((byte) 1); 196 byte[] testBytes = "Bytes".getBytes(); 197 sent.writeBytes(testBytes); 198 sent.writeChar('c'); 199 sent.writeShort((short) 31415); 200 sent.writeInt(314159); 201 sent.writeLong(3141592653589793238L); 202 sent.writeDouble(3.1415926535897932384626433832795); 203 sent.writeFloat(3.141f); 204 sent.writeObject("31415926535897932384626433832795"); 205 sent.writeString("31415926535897932384626433832795"); 206 207 StreamMessage recv = (StreamMessage ) sendRecMsg(sent); 208 log.debug("recv: "+recv); 209 assertTrue("Boolean == true", recv.readBoolean() == true); 210 assertTrue("Byte == 1", recv.readByte() == 1); 211 byte[] bytes = new byte[testBytes.length]; 213 recv.readBytes(bytes); 214 assertTrue(recv.readBytes(bytes) < 0); 215 assertTrue("Bytes == Bytes[]", 216 Arrays.equals(bytes, testBytes)); 217 char c = recv.readChar(); 218 assertTrue("Char == c", c == 'c'); 219 assertTrue("Short == 314159", recv.readShort() == 31415); 220 assertTrue("Int == 314159", recv.readInt() == 314159); 221 assertTrue("Long == 3141592653589793238L", 222 recv.readLong() == 3141592653589793238L); 223 assertTrue("Double == 3.1415926535897932384626433832795", 224 recv.readDouble() == 3.1415926535897932384626433832795); 225 assertTrue("Float == true", recv.readFloat() == 3.141f); 226 assertTrue("Object == 31415926535897932384626433832795", 227 recv.readObject().equals("31415926535897932384626433832795")); 228 assertTrue("String == 31415926535897932384626433832795", 229 recv.readString().equals("31415926535897932384626433832795")); 230 } 231 232 protected void setUp() throws Exception 233 { 234 super.setUp() ; 236 237 context = new InitialContext (); 238 QueueConnectionFactory queueFactory = (QueueConnectionFactory ) context.lookup(QUEUE_FACTORY); 239 queueConnection = queueFactory.createQueueConnection(); 240 queueConnection.start(); 241 session = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); 242 Queue queue = (Queue ) context.lookup(TEST_QUEUE); 243 sender = session.createSender(queue); 244 receiver = session.createReceiver(queue); 245 246 log.debug("Connection to jms established."); 247 } 248 249 protected void tearDown() throws Exception 250 { 251 sender.close(); 252 receiver.close(); 253 session.close(); 254 queueConnection.close(); 255 256 super.tearDown() ; 258 } 259 260 private Message sendRecMsg(Message in) throws Exception 261 { 262 sender.send(in, DeliveryMode.NON_PERSISTENT, 4, 0); 263 Message out = receiver.receive(5000); 264 return out; 265 } 266 267 public static junit.framework.Test suite() throws Exception 268 { 269 ClassLoader loader = Thread.currentThread().getContextClassLoader(); 270 String resourceName = getJMSResourceRelativePathname("test-destinations-service.xml") ; 271 272 return getDeploySetup(MessageTypesUnitTestCase.class, 273 loader.getResource(resourceName).toString()); 274 } 275 276 } 277 | Popular Tags |