You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by jg...@apache.org on 2008/05/29 20:29:00 UTC
svn commit: r661430 -
/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs
Author: jgomes
Date: Thu May 29 11:28:59 2008
New Revision: 661430
URL: http://svn.apache.org/viewvc?rev=661430&view=rev
Log:
Additional clean-up of durable consumers. Added multiple run of transactional durable consumer to test for InvalidClientIDException when reconnecting.
Fixes [AMQNET-65]. (See https://issues.apache.org/activemq/browse/AMQNET-65)
Modified:
activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs
Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs?rev=661430&r1=661429&r2=661430&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs Thu May 29 11:28:59 2008
@@ -22,46 +22,45 @@
[TestFixture]
public abstract class DurableTest : NMSTestSupport
{
- private static string TOPIC = "TestTopic";
+ private static string TOPIC = "TestTopicDurableConsumer";
private static String CLIENT_ID = "DurableClientId";
private static String CONSUMER_ID = "ConsumerId";
private int count = 0;
- public void RegisterDurableConsumer()
+ protected void RegisterDurableConsumer()
{
- using (IConnection connection = Factory.CreateConnection())
+ using(IConnection connection = Factory.CreateConnection())
{
connection.ClientId = CLIENT_ID;
connection.Start();
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.DupsOkAcknowledge))
+ using(ISession session = connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
{
ITopic topic = session.GetTopic(TOPIC);
- IMessageConsumer consumer = session.CreateDurableConsumer(
- topic, CONSUMER_ID, "2 > 1", false);
- consumer.Dispose();
+ using(IMessageConsumer consumer = session.CreateDurableConsumer(topic, CONSUMER_ID, "2 > 1", false))
+ {
+ }
}
connection.Stop();
}
}
- public void SendPersistentMessage()
+ protected void SendPersistentMessage()
{
- using (IConnection connection = Factory.CreateConnection())
+ using(IConnection connection = Factory.CreateConnection())
{
connection.Start();
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.DupsOkAcknowledge))
+ using (ISession session = connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
{
ITopic topic = session.GetTopic(TOPIC);
- ITextMessage message = session.CreateTextMessage("Hello");
+ ITextMessage message = session.CreateTextMessage("Persistent Hello");
message.NMSPersistent = true;
- IMessageProducer producer = session.CreateProducer();
- producer.Send(topic, message);
- producer.Dispose();
+ using(IMessageProducer producer = session.CreateProducer())
+ {
+ producer.Send(topic, message);
+ }
}
connection.Stop();
@@ -69,7 +68,7 @@
}
[Test]
- public void TestMe()
+ public void TestDurableConsumer()
{
count = 0;
@@ -81,26 +80,43 @@
connection.ClientId = CLIENT_ID;
connection.Start();
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.DupsOkAcknowledge))
+ using (ISession session = connection.CreateSession(AcknowledgementMode.DupsOkAcknowledge))
{
ITopic topic = session.GetTopic(TOPIC);
- IMessageConsumer consumer = session.CreateDurableConsumer(
- topic, CONSUMER_ID, "2 > 1", false);
- consumer.Listener += new MessageListener(consumer_Listener);
- // Don't know how else to give the system enough time. // Thread.Sleep(5000); Assert.AreEqual(0, count); Console.WriteLine("Count = " + count); SendPersistentMessage(); Thread.Sleep(5000); Assert.AreEqual(2, count); Console.WriteLine("Count = " + count); consumer.Dispose(); }
-
- connection.Stop();
+ using(IMessageConsumer consumer = session.CreateDurableConsumer(topic, CONSUMER_ID, "2 > 1", false))
+ {
+ consumer.Listener += new MessageListener(consumer_Listener);
+ // Don't know how else to give the system enough time.
+ System.Threading.Thread.Sleep(5000);
+ Assert.AreEqual(1, count);
+ Console.WriteLine("Count = " + count);
+ SendPersistentMessage();
+ System.Threading.Thread.Sleep(5000);
+ Assert.AreEqual(2, count);
+ Console.WriteLine("Count = " + count);
+ }
}
+
+ connection.Stop();
}
}
[Test]
- public void TestMeTransactional()
+ public void TestDurableConsumerTransactional()
{
- count = 0;
-
RegisterDurableConsumer();
+
+ RunTestDurableConsumerTransactional();
+ // Timeout required before closing/disposing the connection otherwise orphan
+ // connection remains and test will fail when run the second time with a
+ // InvalidClientIDException: DurableClientID already connected.
+ //System.Threading.Thread.Sleep(5000);
+ RunTestDurableConsumerTransactional();
+ }
+
+ protected void RunTestDurableConsumerTransactional()
+ {
+ count = 0;
SendPersistentMessage();
using (IConnection connection = Factory.CreateConnection())
@@ -108,36 +124,32 @@
connection.ClientId = CLIENT_ID;
connection.Start();
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.Transactional))
+ using (ISession session = connection.CreateSession(AcknowledgementMode.Transactional))
{
ITopic topic = session.GetTopic(TOPIC);
- IMessageConsumer consumer = session.CreateDurableConsumer(
- topic, CONSUMER_ID, "2 > 1", false);
- consumer.Listener += new MessageListener(consumer_Listener);
- /// Don't know how else to give the system enough time.
-
- System.Threading.Thread.Sleep(3000);
- Assert.AreEqual(1, count);
- Console.WriteLine("Count = " + count);
- SendPersistentMessage();
- System.Threading.Thread.Sleep(3000);
- Assert.AreEqual(2, count);
- Console.WriteLine("Count = " + count);
-
- session.Commit();
- // Timeout required before closing/disposing the connection otherwise orphan
- // connection remains and test will fail when run the second time with a
- // InvalidClientIDException: DurableClientID already connected.
- //System.Threading.Thread.Sleep(3000);
- consumer.Dispose();
- connection.Stop();
+ using(IMessageConsumer consumer = session.CreateDurableConsumer(topic, CONSUMER_ID, "2 > 1", false))
+ {
+ consumer.Listener += new MessageListener(consumer_Listener);
+ /// Don't know how else to give the system enough time.
+
+ System.Threading.Thread.Sleep(5000);
+ Assert.AreEqual(1, count);
+ Console.WriteLine("Count = " + count);
+ SendPersistentMessage();
+ System.Threading.Thread.Sleep(5000);
+ Assert.AreEqual(2, count);
+ Console.WriteLine("Count = " + count);
+
+ session.Commit();
+ }
}
+
+ connection.Stop();
}
}
/// <summary>
- ///
+ /// Asynchronous listener call back method.
/// </summary>
/// <param name="message"></param>
private void consumer_Listener(IMessage message)