[jboss-cvs] JBoss Messaging SVN: r6247 - trunk/tests/jms-tests/src/org/jboss/test/messaging/jms.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 31 16:51:39 EDT 2009
Author: clebert.suconic at jboss.com
Date: 2009-03-31 16:51:39 -0400 (Tue, 31 Mar 2009)
New Revision: 6247
Modified:
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java
Log:
Adding two jms tests
ACKTest - It was waiting on my workspace for a Tim Fox's commit
DurableTest - A condition I wanted to validate while I was working on examples and I realized there were not tests for it
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java 2009-03-31 20:04:44 UTC (rev 6246)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/AcknowledgementTest.java 2009-03-31 20:51:39 UTC (rev 6247)
@@ -1526,4 +1526,93 @@
}
}
+
+ public void testTransactionalIgnoreACK() throws Exception
+ {
+ Connection conn = null;
+
+ try
+ {
+ conn = cf.createConnection();
+
+ Session producerSess = conn.createSession(true, Session.SESSION_TRANSACTED);
+ MessageProducer producer = producerSess.createProducer(queue1);
+
+ Session consumerSess = conn.createSession(true, Session.SESSION_TRANSACTED);
+ MessageConsumer consumer = consumerSess.createConsumer(queue1);
+ conn.start();
+
+ final int NUM_MESSAGES = 20;
+
+ // Send some messages
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ Message m = producerSess.createMessage();
+ m.acknowledge(); // This is invalid but should be ignored accordingly to the javadoc
+ producer.send(m);
+ }
+
+ assertRemainingMessages(0);
+
+ producerSess.rollback();
+
+ // Send some messages
+ for (int i = 0; i < NUM_MESSAGES; i++)
+ {
+ Message m = producerSess.createMessage();
+ m.acknowledge(); /// should be ignored
+ producer.send(m);
+ }
+ assertRemainingMessages(0);
+
+ producerSess.commit();
+
+ assertRemainingMessages(NUM_MESSAGES);
+
+
+ int count = 0;
+ while (true)
+ {
+ Message m = consumer.receive(200);
+ if (m == null)
+ {
+ break;
+ }
+ m.acknowledge();
+ count++;
+ }
+
+ assertRemainingMessages(NUM_MESSAGES);
+
+ assertEquals(count, NUM_MESSAGES);
+
+ consumerSess.rollback();
+
+ assertRemainingMessages(NUM_MESSAGES);
+
+ int i = 0;
+ for (; i < NUM_MESSAGES; i++)
+ {
+ consumer.receive();
+ }
+
+ assertRemainingMessages(NUM_MESSAGES);
+
+ // if I don't receive enough messages, the test will timeout
+
+ consumerSess.commit();
+
+ assertRemainingMessages(0);
+
+ checkEmpty(queue1);
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+ }
+ }
+
}
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java 2009-03-31 20:04:44 UTC (rev 6246)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java 2009-03-31 20:51:39 UTC (rev 6247)
@@ -457,7 +457,75 @@
}
}
}
+
+
+ public void testNoLocal() throws Exception
+ {
+ internalTestNoLocal(true);
+ internalTestNoLocal(false);
+ }
+
+ private void internalTestNoLocal(boolean noLocal) throws Exception
+ {
+ Connection conn1 = null;
+ Connection conn2 = null;
+ try
+ {
+ conn1 = cf.createConnection();
+ conn1.setClientID(".client.id.with.periods.");
+
+ conn2 = cf.createConnection();
+ conn2.setClientID(".client.id.with.periods2.");
+
+ Session s1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ Session s2 = conn2.createSession(false, Session.AUTO_ACKNOWLEDGE);
+
+ TopicSubscriber subscriber1 = s1.createDurableSubscriber(topic1, ".subscription.name.with.periods.", null, noLocal);
+ TopicSubscriber subscriber2 = s2.createDurableSubscriber(topic1, ".subscription.name.with.periods.", null, false);
+
+
+ s1.createProducer(topic1).send(s1.createTextMessage("Subscription test"));
+
+ conn1.start();
+
+ Message m = subscriber1.receive(100L);
+
+ if (noLocal)
+ {
+ assertNull(m);
+ }
+ else
+ {
+ assertNotNull(m);
+ }
+
+ conn2.start();
+
+ m = subscriber2.receive(1000l);
+
+ assertNotNull(m);
+ assertTrue(m instanceof TextMessage);
+
+ subscriber1.close();
+ subscriber2.close();
+
+ s1.unsubscribe(".subscription.name.with.periods.");
+ s2.unsubscribe(".subscription.name.with.periods.");
+ }
+ finally
+ {
+ if (conn1 != null)
+ {
+ conn1.close();
+ }
+ if (conn2 != null)
+ {
+ conn2.close();
+ }
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list