[hornetq-commits] JBoss hornetq SVN: r12226 - in trunk/tests: unit-tests/src/test/java/org/hornetq/tests/unit/util and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Mar 1 14:58:57 EST 2012


Author: clebert.suconic
Date: 2012-03-01 14:58:56 -0500 (Thu, 01 Mar 2012)
New Revision: 12226

Modified:
   trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ConsumerFilterTest.java
   trunk/tests/unit-tests/src/test/java/org/hornetq/tests/unit/util/LinkedListTest.java
Log:
JBPAPP-8282 - merge on trunk

Modified: trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ConsumerFilterTest.java
===================================================================
--- trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ConsumerFilterTest.java	2012-03-01 16:04:29 UTC (rev 12225)
+++ trunk/tests/integration-tests/src/test/java/org/hornetq/tests/integration/client/ConsumerFilterTest.java	2012-03-01 19:58:56 UTC (rev 12226)
@@ -202,4 +202,86 @@
 
       session.close();
    }
+   
+   public void testLinkedListOrder() throws Exception
+   {
+      ServerLocator locator = createInVMNonHALocator();
+
+      ClientSessionFactory sf = locator.createSessionFactory();
+
+      ClientSession session = sf.createSession();
+
+      session.start();
+
+      session.createQueue("foo", "foo", true);
+      
+      ClientProducer producer = session.createProducer("foo");
+
+      ClientConsumer redConsumer = session.createConsumer("foo", "color='red'");
+      
+      ClientConsumer anyConsumer = session.createConsumer("foo");
+      
+      sendMessage(session, producer, "any", "msg1");
+      
+      sendMessage(session, producer, "any", "msg2");
+      
+      sendMessage(session, producer, "any", "msg3");
+      
+      sendMessage(session, producer, "red", "msgRed4");
+      
+      sendMessage(session, producer, "red", "msgRed5");
+
+      readConsumer("anyConsumer", anyConsumer);
+
+      readConsumer("anyConsumer", anyConsumer);
+      
+      log.info("### closing consumer ###");
+
+      anyConsumer.close();
+      
+      readConsumer("redConsumer", redConsumer);
+
+      readConsumer("redConsumer", redConsumer);
+      
+      log.info("### recreating consumer ###");
+      
+      anyConsumer = session.createConsumer("foo");
+      
+      session.start();
+      
+      readConsumer("anyConsumer", anyConsumer);
+      
+      session.close();
+      
+      sf.close();
+      
+      locator.close();
+   }
+
+   /**
+    * @param consumer
+    * @throws HornetQException
+    */
+   private void readConsumer(String consumerName, ClientConsumer consumer) throws Exception
+   {
+      ClientMessage message = consumer.receive(5000);
+      assertNotNull(message);
+      System.out.println("consumer = " + consumerName + " message, color=" + message.getStringProperty("color") + ", msg = " + message.getStringProperty("value"));
+      message.acknowledge();
+   }
+
+   /**
+    * @param session
+    * @param producer
+    * @return
+    * @throws HornetQException
+    */
+   private void sendMessage(ClientSession session, ClientProducer producer, String color, String msg) throws Exception
+   {
+      ClientMessage anyMessage = session.createMessage(true);
+      anyMessage.putStringProperty("color", color);
+      anyMessage.putStringProperty("value", msg);
+      producer.send(anyMessage);
+      session.commit();
+   }
 }

Modified: trunk/tests/unit-tests/src/test/java/org/hornetq/tests/unit/util/LinkedListTest.java
===================================================================
--- trunk/tests/unit-tests/src/test/java/org/hornetq/tests/unit/util/LinkedListTest.java	2012-03-01 16:04:29 UTC (rev 12225)
+++ trunk/tests/unit-tests/src/test/java/org/hornetq/tests/unit/util/LinkedListTest.java	2012-03-01 19:58:56 UTC (rev 12226)
@@ -110,6 +110,76 @@
 
    }
 
+   public void testAddHeadAndRemove()
+   {
+      final AtomicInteger count = new AtomicInteger(0);
+      class MyObject
+      {
+
+         public int payload;
+
+         MyObject(int payloadcount)
+         {
+            count.incrementAndGet();
+            this.payload = payloadcount;
+         }
+
+         protected void finalize() throws Exception
+         {
+            count.decrementAndGet();
+         }
+         
+         public String toString()
+         {
+            return "" + payload;
+         }
+      };
+
+      LinkedListImpl<MyObject> objs = new LinkedListImpl<MyObject>();
+
+      // Initial add
+      for (int i = 1000; i >= 0; i--)
+      {
+         objs.addHead(new MyObject(i));
+      }
+      assertCount(1001, count);
+
+      LinkedListIterator<MyObject> iter = objs.iterator();
+
+      int countLoop = 0;
+      for (countLoop = 0 ; countLoop <= 1000; countLoop++)
+      {
+         MyObject obj = iter.next();
+         assertEquals(countLoop, obj.payload);
+         if (countLoop == 500 || countLoop == 1000)
+         {
+            iter.remove();
+         }
+      }
+      
+      iter.close();
+      
+      iter = objs.iterator();
+      
+      countLoop = 0;
+      while (iter.hasNext())
+      {
+         if (countLoop == 500 || countLoop == 1000)
+         {
+            System.out.println("Jumping " + countLoop);
+            countLoop++;
+         }
+         MyObject obj = iter.next();
+         assertEquals(countLoop, obj.payload);
+         countLoop++;
+      }
+      
+      
+      
+      assertCount(999, count);
+
+   }
+
    /**
     * @param count
     */



More information about the hornetq-commits mailing list