User: dmaplesden
  Date: 01/09/19 15:45:23

  Modified:    src/main/org/jboss/test/jbossmq/test
                        JBossMQUnitTestCase.java
  Log:
  added additional simple tests
  
  Revision  Changes    Path
  1.3       +221 -10   
jbosstest/src/main/org/jboss/test/jbossmq/test/JBossMQUnitTestCase.java
  
  Index: JBossMQUnitTestCase.java
  ===================================================================
  RCS file: 
/cvsroot/jboss/jbosstest/src/main/org/jboss/test/jbossmq/test/JBossMQUnitTestCase.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- JBossMQUnitTestCase.java  2001/09/15 01:50:16     1.2
  +++ JBossMQUnitTestCase.java  2001/09/19 22:45:23     1.3
  @@ -15,14 +15,14 @@
    * License along with this library; if not, write to the Free Software
    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
    */
  -package org.jboss.test.jbossmq.test; 
  +package org.jboss.test.jbossmq.test;
   
   import javax.naming.*;
   import javax.jms.*;
   import java.util.*;
  -import org.apache.log4j.Category;
   
   import org.jboss.test.JBossTestCase;
  +import org.apache.log4j.Category;
   
   /**
    * JBossMQUnitTestCase.java
  @@ -32,7 +32,7 @@
    * @author
    * @version
    */
  -public class JBossMQUnitTestCase 
  +public class JBossMQUnitTestCase
      extends JBossTestCase
   {
      // Provider specific
  @@ -43,6 +43,7 @@
      static String TEST_TOPIC = "topic/testTopic";
   
      //JMSProviderAdapter providerAdapter;
  +   static Context context;
      static QueueConnection queueConnection; 
      static TopicConnection topicConnection;
        
  @@ -55,7 +56,7 @@
      private void drainQueue() throws Exception {
                
         QueueSession session = queueConnection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  -      Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
  +      Queue queue = (Queue)context.lookup(TEST_QUEUE);
   
         QueueReceiver receiver = session.createReceiver(queue);
         Message message = receiver.receive( 2000 );
  @@ -82,10 +83,15 @@
   
      protected void connect() throws Exception {
   
  -      QueueConnectionFactory queueFactory = (QueueConnectionFactory) 
getInitialContext().lookup(QUEUE_FACTORY);
  +      if( context == null ) {
  +                     
  +         context = new InitialContext();
  +                     
  +      }
  +      QueueConnectionFactory queueFactory = (QueueConnectionFactory) 
context.lookup(QUEUE_FACTORY);
         queueConnection = queueFactory.createQueueConnection();
   
  -      TopicConnectionFactory topicFactory = 
(TopicConnectionFactory)getInitialContext().lookup(TOPIC_FACTORY);
  +      TopicConnectionFactory topicFactory = 
(TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
         topicConnection = topicFactory.createTopicConnection();
   
         getLog().debug("Connection to spyderMQ established.");
  @@ -117,7 +123,7 @@
         drainQueue();
                
         QueueSession session = queueConnection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  -      Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
  +      Queue queue = (Queue)context.lookup(TEST_QUEUE);
         QueueSender sender = session.createSender(queue);
                
         TextMessage message = session.createTextMessage();
  @@ -173,9 +179,10 @@
               public void run() {
                  Category log = Category.getInstance(getClass().getName());
                  try {
  +
                     log.debug("Server Thread Started");
                     QueueSession session = queueConnection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  -                  Queue queue = (Queue)new InitialContext().lookup(TEST_QUEUE);
  +                  Queue queue = (Queue)context.lookup(TEST_QUEUE);
   
                     QueueReceiver queueReceiver = session.createReceiver(queue);
                                        
  @@ -198,7 +205,7 @@
                     log.debug("Server Thread Finished");
   
                  } catch ( Exception e ) {
  -                  log.error("Error", e);
  +                  log.error("Error",e);
                  }
               }
            };
  @@ -206,7 +213,7 @@
         serverThread.start();
                
         QueueSession session = queueConnection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  -      Queue queue = (Queue)getInitialContext().lookup(TEST_QUEUE);
  +      Queue queue = (Queue)context.lookup(TEST_QUEUE);
   
         QueueRequestor queueRequestor = new QueueRequestor(session, queue);
         TextMessage message = session.createTextMessage();
  @@ -231,4 +238,208 @@
   
         getLog().debug("RequestReplyQueue passed");
      }
  +
  +   public void testMessageListener() throws Exception{
  +      getLog().debug("Starting MessageListener test");
  +
  +      connect();
  +      queueConnection.start();
  +      drainQueue();
  +
  +      QueueSession session = queueConnection.createQueueSession(false, 
Session.AUTO_ACKNOWLEDGE);
  +      Queue queue = (Queue)context.lookup(TEST_QUEUE);
  +
  +      QueueReceiver receiver = session.createReceiver(queue);
  +      receiver.setMessageListener(new MessageListener(){
  +         public void onMessage(Message msg){
  +            Category log = Category.getInstance(getClass().getName());
  +            log.debug("ML");
  +            try{
  +              if(msg instanceof TextMessage)
  +                 log.debug(((TextMessage)msg).getText());
  +            }catch(Exception e){}
  +         }
  +      });
  +
  +      QueueSender sender = session.createSender(queue);
  +
  +      TextMessage message = session.createTextMessage();
  +      message.setText("Normal message");
  +      sender.send(queue, message, DeliveryMode.NON_PERSISTENT, 4, 0);
  +      message.setText("Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
  +      message.setText("High Priority Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
  +
  +      try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
  +
  +      receiver.setMessageListener(new MessageListener(){
  +         public void onMessage(Message msg){
  +            Category log = Category.getInstance(getClass().getName());
  +            log.debug("ML 2");
  +            try{
  +              if(msg instanceof TextMessage)
  +                 log.debug(((TextMessage)msg).getText());
  +            }catch(Exception e){}
  +         }
  +      });
  +
  +      message.setText("Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
  +      message.setText("High Priority Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
  +      try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
  +
  +      receiver.setMessageListener(null);
  +
  +      message.setText("Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 4, 0);
  +      message.setText("High Priority Persistent message");
  +      sender.send(queue, message, DeliveryMode.PERSISTENT, 10, 0);
  +
  +      sender.close();
  +      drainQueue();
  +      disconnect();
  +      getLog().debug("MessageListener test passed");
  +   }
  +
  +   public void testApplicationServerStuff() throws Exception{
  +      getLog().debug("Testing app server stuff");
  +      connect();
  +
  +      Queue testQueue = (Queue)context.lookup(TEST_QUEUE);
  +      final QueueSession session = 
queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
  +
  +      session.setMessageListener(new MessageListener(){
  +         public void onMessage(Message mess){
  +            Category log = Category.getInstance(getClass().getName());
  +            log.debug("Processing message");
  +            try{
  +               if(mess instanceof TextMessage)
  +                  log.debug(((TextMessage)mess).getText());
  +            }catch(Exception e){
  +               log.error("Error",e);
  +            }
  +         }
  +      });
  +
  +      QueueSender sender = session.createSender(testQueue);
  +      sender.send(session.createTextMessage("Hi"));
  +      sender.send(session.createTextMessage("There"));
  +      sender.send(session.createTextMessage("Guys"));
  +      queueConnection.createConnectionConsumer(testQueue,null,new 
ServerSessionPool(){
  +         public ServerSession getServerSession(){
  +            Category.getInstance(getClass().getName()).debug("Getting server 
session.");
  +            return new ServerSession(){
  +               public Session getSession(){
  +                  return session;
  +               }
  +               public void start(){
  +                  Category.getInstance(getClass().getName()).debug("Starting server 
session.");
  +                  session.run();
  +               }
  +            };
  +         }
  +      },10);
  +
  +      queueConnection.start();
  +
  +      try{ Thread.sleep(5*1000); }catch(Exception e){}
  +
  +      disconnect();
  +      getLog().debug("Done testing app server stuff");
  +   }
  +
  +   public void testPM() throws Exception{
  +      //simply put a few messages on the test queue for next time.
  +      connect();
  +
  +      Queue testQueue = (Queue)context.lookup(TEST_QUEUE);
  +      QueueSession session = 
queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
  +      QueueSender sender = session.createSender(testQueue);
  +      sender.send(session.createTextMessage("From last time"));
  +      sender.send(session.createTextMessage("From last time"));
  +      sender.send(session.createTextMessage("From last time"));
  +      sender.close();
  +      session.close();
  +      disconnect();
  +      
  +   }
  +   
  +   private void drainMessagesForTopic(TopicSubscriber sub) throws JMSException{
  +      Message msg = sub.receive(2000);
  +      int c = 0;
  +      while(msg != null){
  +         c++;
  +         if(msg instanceof TextMessage)
  +            getLog().debug(((TextMessage)msg).getText());
  +         msg = sub.receive(2000);
  +      }
  +      getLog().debug("Received "+c+" messages from topic.");
  +   }
  +
  +   public void testTopics() throws Exception {
  +      getLog().debug("Starting Topic test");
  +
  +      TopicConnectionFactory topicFactory = 
(TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
  +      topicConnection = topicFactory.createTopicConnection("john","needle");
  +
  +      topicConnection.start();
  +
  +      //set up some subscribers to the topic
  +      TopicSession session = topicConnection.createTopicSession(false, 
Session.AUTO_ACKNOWLEDGE);
  +      Topic topic = (Topic)context.lookup(TEST_TOPIC);
  +
  +      TopicSubscriber sub1 = session.createDurableSubscriber(topic,"sub1");
  +      TopicSubscriber sub2 = session.createSubscriber(topic);
  +      TopicSubscriber sub3 = session.createSubscriber(topic);
  +
  +      //Now a sender
  +      TopicPublisher sender = session.createPublisher(topic);
  +
  +      //send some messages
  +      sender.publish(session.createTextMessage("Message 1"));
  +      sender.publish(session.createTextMessage("Message 2"));
  +      sender.publish(session.createTextMessage("Message 3"));
  +      drainMessagesForTopic(sub1);
  +      drainMessagesForTopic(sub2);
  +      drainMessagesForTopic(sub3);
  +
  +      //close some subscribers
  +      sub1.close();
  +      sub2.close();
  +
  +      //send some more messages
  +      sender.publish(session.createTextMessage("Message 4"));
  +      sender.publish(session.createTextMessage("Message 5"));
  +      sender.publish(session.createTextMessage("Message 6"));
  +
  +      //give time for message 4 to be negatively acked (as it will be cause last 
receive timed out)
  +      try{ Thread.sleep(5*1000); }catch(InterruptedException e){}
  +
  +      drainMessagesForTopic(sub3);
  +
  +      //open subscribers again.
  +      sub1 = session.createDurableSubscriber(topic,"sub1");
  +      sub2 = session.createSubscriber(topic);
  +
  +      //Send a final message
  +      sender.publish(session.createTextMessage("Final message"));
  +      sender.close();
  +
  +      drainMessagesForTopic(sub1);
  +      drainMessagesForTopic(sub2);
  +      drainMessagesForTopic(sub3);
  +
  +      sub1.close();
  +      sub2.close();
  +      sub3.close();
  +
  +      session.unsubscribe("sub1");
  +
  +      topicConnection.stop();
  +      topicConnection.close();
  +      getLog().debug("Topic test passed");
  +   }
  +
   }
  
  
  

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to