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