[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