[jboss-cvs] JBossAS SVN: r64257 - branches/Branch_4_4/testsuite/src/main/org/jboss/test/jbossmessaging/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Jul 24 13:43:18 EDT 2007


Author: clebert.suconic at jboss.com
Date: 2007-07-24 13:43:18 -0400 (Tue, 24 Jul 2007)
New Revision: 64257

Modified:
   branches/Branch_4_4/testsuite/src/main/org/jboss/test/jbossmessaging/test/UnackedUnitTestCase.java
Log:
Fixing test

Modified: branches/Branch_4_4/testsuite/src/main/org/jboss/test/jbossmessaging/test/UnackedUnitTestCase.java
===================================================================
--- branches/Branch_4_4/testsuite/src/main/org/jboss/test/jbossmessaging/test/UnackedUnitTestCase.java	2007-07-24 17:06:05 UTC (rev 64256)
+++ branches/Branch_4_4/testsuite/src/main/org/jboss/test/jbossmessaging/test/UnackedUnitTestCase.java	2007-07-24 17:43:18 UTC (rev 64257)
@@ -76,8 +76,8 @@
       // so it must be defined explicitly when running under some JVMs
       TestSuite suite = new TestSuite();
       suite.addTest(new UnackedUnitTestCase("testUnackedQueue"));
+      suite.addTest(new UnackedUnitTestCase("testUnackedMultipleConnection"));
       suite.addTest(new UnackedUnitTestCase("testUnackedMultipleSession"));
-      suite.addTest(new UnackedUnitTestCase("testUnackedMultipleConnection"));
       suite.addTest(new UnackedUnitTestCase("testUnackedTopic"));
       suite.addTest(new UnackedUnitTestCase("testUnackedDurableTopic"));
       suite.addTest(new UnackedUnitTestCase("testDummyLast"));
@@ -150,6 +150,7 @@
     */
    public void runUnackedMultipleSession(final int persistence) throws Exception
    {
+	  System.out.println("++ runUnackedMultipleSession");
       drainQueue();
 
       final int iterationCount = getIterationCount();
@@ -168,47 +169,71 @@
       session.close();
 
       QueueSession session1 = queueConnection.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
-      queue = (Queue)context.lookup(TEST_QUEUE);
-      QueueReceiver receiver1 = session1.createReceiver(queue);
       QueueSession session2 = queueConnection.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
-      QueueReceiver receiver2 = session2.createReceiver(queue);
-      queueConnection.start();
-
-      // Read half from session1
-      int c = 0;
-      for (int l = 0; l < iterationCount/2; l++)
+      try
       {
-         message = receiver1.receive(50);
-         if (message != null)
-            c++;
+	      queue = (Queue)context.lookup(TEST_QUEUE);
+	      QueueReceiver receiver1 = session1.createReceiver(queue);
+	      
+	      QueueReceiver receiver2 = session2.createReceiver(queue);
+	      queueConnection.start();
+	
+	      int c1=0, c2=0;
+	      
+	      Message messageConsumer1=null, messageConsumer2=null;
+	      
+	      Message lastMessageConsumer1 = null, lastMessageConsumer2=null;
+	      
+	      do
+	      {
+	    	  messageConsumer1 = receiver1.receive(1000);
+	    	  messageConsumer2 = receiver2.receive(1000);
+	    	  if (messageConsumer1 != null)
+	    	  {
+	    		  c1 ++;
+	    		  lastMessageConsumer1 = messageConsumer1;
+	    	  }
+	    	  
+	    	  if (messageConsumer2 != null)
+	    	  {
+	    		  c2 ++;
+	    		  lastMessageConsumer2 = messageConsumer2;
+	    	  }
+	    	  
+	    	  System.out.println("messageConsumer1=" + messageConsumer1 + " messageConsumer2=" + messageConsumer2 + " c1=" + c1 + " c2 = " + c2);
+	      }
+	      while (messageConsumer1!=null || messageConsumer2!=null);
+	      
+	      assertEquals(iterationCount, c1 + c2);
+	      assertEquals(iterationCount/2,c1);
+	      assertEquals(iterationCount/2,c2);
+	      
+	      lastMessageConsumer1.acknowledge();
+	      lastMessageConsumer2.acknowledge();
+	
+	      queueConnection.stop();
+	      session1.close();
+	      session2.close();
       }
-      assertTrue("Should have received half data unacked", c == iterationCount/2);
-
-      // Read the rest from session2
-      c = 0;
-      Message lastMessage = null;
-      while (message != null)
+      finally
       {
-         message = receiver2.receive(50);
-         if (message != null)
-         {
-            c++;
-            lastMessage = message;
-         }
+    	  try
+    	  {
+    		  session1.close();
+    	  }
+    	  catch (Throwable ignored)
+    	  {
+    	  }
+    	  try
+    	  {
+    		  session2.close();
+    	  }
+    	  catch (Throwable ignored)
+    	  {
+    	  }
       }
-      assertTrue("Should have received all data unacked", c == iterationCount - iterationCount/2);
 
-      // Close session1, the messages are unacked and should go back in the queue
-      session1.close();
-
-      // Acknowledge messages on session2 and close it
-      lastMessage.acknowledge();
-      session2.close();
-
-      queueConnection.stop();
-
-      assertTrue("Session1 messages should be available", drainQueue() == iterationCount/2);
-
+	  System.out.println("-- runUnackedMultipleSession");
    }
 
    /**
@@ -219,6 +244,7 @@
     */
    public void runUnackedMultipleConnection(final int persistence) throws Exception
    {
+	  System.out.println("++runUnackedMultipleConnection");
       drainQueue();
 
       final int iterationCount = getIterationCount();
@@ -238,50 +264,61 @@
 
       QueueConnectionFactory queueFactory = (QueueConnectionFactory)context.lookup(QUEUE_FACTORY);
       QueueConnection queueConnection1 = queueFactory.createQueueConnection();
-      QueueSession session1 = queueConnection1.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
-      queue = (Queue)context.lookup(TEST_QUEUE);
-      QueueReceiver receiver1 = session1.createReceiver(queue);
-
       QueueConnection queueConnection2 = queueFactory.createQueueConnection();
-      QueueSession session2 = queueConnection2.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
-      QueueReceiver receiver2 = session2.createReceiver(queue);
 
-      queueConnection1.start();
-      queueConnection2.start();
+      try
+      {
+	      QueueSession session1 = queueConnection1.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
+	      queue = (Queue)context.lookup(TEST_QUEUE);
+	      QueueReceiver receiver1 = session1.createReceiver(queue);
+	
+	      QueueSession session2 = queueConnection2.createQueueSession(false, Session.CLIENT_ACKNOWLEDGE);
+	      QueueReceiver receiver2 = session2.createReceiver(queue);
+	
+	      queueConnection1.start();
+	      queueConnection2.start();
+	
+	      int c1=0, c2=0;
+	      
+	      Message messageConsumer1=null, messageConsumer2=null;
+	      
+	      Message lastMessageConsumer1 = null, lastMessageConsumer2=null;
+	      
+	      do
+	      {
+	    	  messageConsumer1 = receiver1.receive(100);
+	    	  messageConsumer2 = receiver2.receive(100);
+	    	  if (messageConsumer1 != null)
+	    	  {
+	    		  c1 ++;
+	    		  lastMessageConsumer1 = messageConsumer1;
+	    	  }
+	    	  
+	    	  if (messageConsumer2 != null)
+	    	  {
+	    		  c2 ++;
+	    		  lastMessageConsumer2 = messageConsumer2;
+	    	  }
+	    	  
+	    	  System.out.println("messageConsumer1=" + messageConsumer1 + " messageConsumer2=" + messageConsumer2 + " c1=" + c1 + " c2 = " + c2);
+	      }
+	      while (messageConsumer1!=null || messageConsumer2!=null);
 
-      // Read half from session1
-      int c = 0;
-      for (int l = 0; l < iterationCount/2; l++)
-      {
-         message = receiver1.receive(50);
-         if (message != null)
-            c++;
+	      if (lastMessageConsumer1!=null) lastMessageConsumer1.acknowledge();
+	      if (lastMessageConsumer2!=null) lastMessageConsumer2.acknowledge();
+	      
+	      assertEquals(iterationCount, c1 + c2);
+	      assertEquals(iterationCount/2,c1);
+	      assertEquals(iterationCount/2,c2);
+	      
       }
-      assertTrue("Should have received half data unacked", c == iterationCount/2);
-
-      // Read the rest from session2
-      Message lastMessage = null;
-      c = 0;
-      while (message != null)
+      finally
       {
-         message = receiver2.receive(50);
-         if (message != null)
-         {
-            c++;
-            lastMessage = message;
-         }
+    	  try{queueConnection1.close();} catch (Throwable ignored){}
+    	  try{queueConnection2.close();} catch (Throwable ignored){}
       }
-      assertTrue("Should have received all data unacked", c == iterationCount - iterationCount/2);
 
-      // Close session1, the messages are unacked and should go back in the queue
-      queueConnection1.close();
-
-      // Acknowledge messages for connection 2 and close it
-      lastMessage.acknowledge();
-      queueConnection2.close();
-
-      assertTrue("Connection1 messages should be available", drainQueue() == iterationCount/2);
-
+	  System.out.println("--runUnackedMultipleConnection");
    }
 
    /**
@@ -542,17 +579,22 @@
       if (context == null)
       {
          context = getInitialContext();
+      }
 
-         QueueConnectionFactory queueFactory = (QueueConnectionFactory)context.lookup(QUEUE_FACTORY);
-         queueConnection = queueFactory.createQueueConnection();
+      QueueConnectionFactory queueFactory = (QueueConnectionFactory)context.lookup(QUEUE_FACTORY);
+      queueConnection = queueFactory.createQueueConnection();
 
-         TopicConnectionFactory topicFactory = (TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
-         topicConnection = topicFactory.createTopicConnection();
-         topicDurableConnection = topicFactory.createTopicConnection("john", "needle");
-
-         getLog().debug("Connection to JBossMQ established.");
-      }
+      TopicConnectionFactory topicFactory = (TopicConnectionFactory)context.lookup(TOPIC_FACTORY);
+      topicConnection = topicFactory.createTopicConnection();
+      topicDurableConnection = topicFactory.createTopicConnection("john", "needle");
    }
+   
+   protected void tearDown() throws Exception
+   {
+	   queueConnection.close();
+	   topicConnection.close();
+	   topicDurableConnection.close();
+   }
 
    // Emptys out all the messages in a queue
    private int drainQueue() throws Exception
@@ -692,6 +734,6 @@
 
    public int getIterationCount()
    {
-      return 5;
+      return 200;
    }
 }




More information about the jboss-cvs-commits mailing list