package org.darkphoenixs.activemq.convertor; import org.apache.activemq.command.ActiveMQBytesMessage; import org.darkphoenixs.mq.message.MessageBeanImpl; import org.junit.Assert; import org.junit.Test; import org.springframework.jms.support.converter.MessageConversionException; import javax.jms.*; import java.io.Serializable; public class MessageConverterTest { @Test public void test() throws Exception { MessageConverterImpl converter = new MessageConverterImpl(); ActiveMQBytesMessage message = new ActiveMQBytesMessage(); long date = System.currentTimeMillis(); message.setReadOnlyBody(false); message.setStringProperty("MessageNo", "123"); message.setStringProperty("MessageAckNo", "12345"); message.setStringProperty("MessageType", "type"); message.setLongProperty("MessageDate", date); message.writeBytes("test".getBytes()); message.storeContent(); message.setReadOnlyBody(true); MessageBeanImpl bean = (MessageBeanImpl) converter.fromMessage(message); Assert.assertEquals("123", bean.getMessageNo()); Assert.assertEquals("12345", bean.getMessageAckNo()); Assert.assertEquals("type", bean.getMessageType()); Assert.assertEquals(date, bean.getMessageDate()); Assert.assertArrayEquals("test".getBytes(), bean.getMessageContent()); ActiveMQBytesMessage message2 = (ActiveMQBytesMessage) converter .toMessage(bean, new SessionImpl()); message2.storeContent(); message2.setReadOnlyBody(true); Assert.assertEquals("123", message2.getStringProperty("MessageNo")); Assert.assertEquals("12345", message2.getStringProperty("MessageAckNo")); Assert.assertEquals("type", message2.getStringProperty("MessageType")); Assert.assertEquals(date, message2.getLongProperty("MessageDate")); Assert.assertEquals("test".length(), message2.readBytes(new byte[1024])); try { converter.fromMessage(null); } catch (Exception e) { Assert.assertTrue(e instanceof MessageConversionException); } try { converter.toMessage(null, null); } catch (Exception e) { Assert.assertTrue(e instanceof MessageConversionException); } } private class SessionImpl implements Session { @Override public BytesMessage createBytesMessage() throws JMSException { return new ActiveMQBytesMessage(); } @Override public MapMessage createMapMessage() throws JMSException { // TODO Auto-generated method stub return null; } @Override public Message createMessage() throws JMSException { // TODO Auto-generated method stub return null; } @Override public ObjectMessage createObjectMessage() throws JMSException { // TODO Auto-generated method stub return null; } @Override public ObjectMessage createObjectMessage(Serializable object) throws JMSException { // TODO Auto-generated method stub return null; } @Override public StreamMessage createStreamMessage() throws JMSException { // TODO Auto-generated method stub return null; } @Override public TextMessage createTextMessage() throws JMSException { // TODO Auto-generated method stub return null; } @Override public TextMessage createTextMessage(String text) throws JMSException { // TODO Auto-generated method stub return null; } @Override public boolean getTransacted() throws JMSException { // TODO Auto-generated method stub return false; } @Override public int getAcknowledgeMode() throws JMSException { // TODO Auto-generated method stub return 0; } @Override public void commit() throws JMSException { // TODO Auto-generated method stub } @Override public void rollback() throws JMSException { // TODO Auto-generated method stub } @Override public void close() throws JMSException { // TODO Auto-generated method stub } @Override public void recover() throws JMSException { // TODO Auto-generated method stub } @Override public MessageListener getMessageListener() throws JMSException { // TODO Auto-generated method stub return null; } @Override public void setMessageListener(MessageListener listener) throws JMSException { // TODO Auto-generated method stub } @Override public void run() { // TODO Auto-generated method stub } @Override public MessageProducer createProducer(Destination destination) throws JMSException { // TODO Auto-generated method stub return null; } @Override public MessageConsumer createConsumer(Destination destination) throws JMSException { // TODO Auto-generated method stub return null; } @Override public MessageConsumer createConsumer(Destination destination, String messageSelector) throws JMSException { // TODO Auto-generated method stub return null; } @Override public MessageConsumer createConsumer(Destination destination, String messageSelector, boolean NoLocal) throws JMSException { // TODO Auto-generated method stub return null; } @Override public Queue createQueue(String queueName) throws JMSException { // TODO Auto-generated method stub return null; } @Override public Topic createTopic(String topicName) throws JMSException { // TODO Auto-generated method stub return null; } @Override public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException { // TODO Auto-generated method stub return null; } @Override public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException { // TODO Auto-generated method stub return null; } @Override public QueueBrowser createBrowser(Queue queue) throws JMSException { // TODO Auto-generated method stub return null; } @Override public QueueBrowser createBrowser(Queue queue, String messageSelector) throws JMSException { // TODO Auto-generated method stub return null; } @Override public TemporaryQueue createTemporaryQueue() throws JMSException { // TODO Auto-generated method stub return null; } @Override public TemporaryTopic createTemporaryTopic() throws JMSException { // TODO Auto-generated method stub return null; } @Override public void unsubscribe(String name) throws JMSException { // TODO Auto-generated method stub } } }