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:06:23 UTC
svn commit: r661426 - in
/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp: DurableTest.cs
NMSTestSupport.cs
Author: jgomes
Date: Thu May 29 11:06:23 2008
New Revision: 661426
URL: http://svn.apache.org/viewvc?rev=661426&view=rev
Log:
Added Durable transactional test from Demis Bellot.
Additional fixes made to base NMSTestSupport.
Fixes [AMQNET-65]. (See https://issues.apache.org/activemq/browse/AMQNET-65)
Modified:
activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs
activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.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=661426&r1=661425&r2=661426&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:06:23 2008
@@ -19,89 +19,130 @@
namespace Apache.NMS.Test
{
- [TestFixture]
- public abstract class DurableTest : NMSTestSupport
- {
- private static string TOPIC = "TestTopic";
- private static String CLIENT_ID = "DurableClientId";
- private static String CONSUMER_ID = "ConsumerId";
-
- private int count = 0;
-
- public void RegisterDurableConsumer()
- {
- using (IConnection connection = Factory.CreateConnection())
- {
- connection.ClientId = CLIENT_ID;
- connection.Start();
-
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.DupsOkAcknowledge))
- {
- ITopic topic = session.GetTopic(TOPIC);
- IMessageConsumer consumer = session.CreateDurableConsumer(
- topic, CONSUMER_ID, "2 > 1", false);
- consumer.Dispose();
- }
-
- connection.Stop();
- }
- }
-
- public void SendPersistentMessage()
- {
- using (IConnection connection = Factory.CreateConnection())
- {
- connection.Start();
- using (ISession session = connection.CreateSession(
- AcknowledgementMode.DupsOkAcknowledge))
- {
- ITopic topic = session.GetTopic(TOPIC);
- ITextMessage message = session.CreateTextMessage("Hello");
- message.NMSPersistent = true;
- IMessageProducer producer = session.CreateProducer();
- producer.Send(topic, message);
- producer.Dispose();
- }
-
- connection.Stop();
- }
- }
-
- [Test]
- public void TestMe()
- {
- count = 0;
-
- RegisterDurableConsumer();
- SendPersistentMessage();
-
- using (IConnection connection = Factory.CreateConnection())
- {
- connection.ClientId = CLIENT_ID;
- connection.Start();
-
- 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();
- }
- }
- }
-
- /// <summary>
- ///
- /// </summary>
- /// <param name="message"></param>
- private void consumer_Listener(IMessage message)
- {
- ++count;
- }
- }
-}
\ No newline at end of file
+ [TestFixture]
+ public abstract class DurableTest : NMSTestSupport
+ {
+ private static string TOPIC = "TestTopic";
+ private static String CLIENT_ID = "DurableClientId";
+ private static String CONSUMER_ID = "ConsumerId";
+
+ private int count = 0;
+
+ public void RegisterDurableConsumer()
+ {
+ using (IConnection connection = Factory.CreateConnection())
+ {
+ connection.ClientId = CLIENT_ID;
+ connection.Start();
+
+ using (ISession session = connection.CreateSession(
+ AcknowledgementMode.DupsOkAcknowledge))
+ {
+ ITopic topic = session.GetTopic(TOPIC);
+ IMessageConsumer consumer = session.CreateDurableConsumer(
+ topic, CONSUMER_ID, "2 > 1", false);
+ consumer.Dispose();
+ }
+
+ connection.Stop();
+ }
+ }
+
+ public void SendPersistentMessage()
+ {
+ using (IConnection connection = Factory.CreateConnection())
+ {
+ connection.Start();
+ using (ISession session = connection.CreateSession(
+ AcknowledgementMode.DupsOkAcknowledge))
+ {
+ ITopic topic = session.GetTopic(TOPIC);
+ ITextMessage message = session.CreateTextMessage("Hello");
+ message.NMSPersistent = true;
+ IMessageProducer producer = session.CreateProducer();
+ producer.Send(topic, message);
+ producer.Dispose();
+ }
+
+ connection.Stop();
+ }
+ }
+
+ [Test]
+ public void TestMe()
+ {
+ count = 0;
+
+ RegisterDurableConsumer();
+ SendPersistentMessage();
+
+ using (IConnection connection = Factory.CreateConnection())
+ {
+ connection.ClientId = CLIENT_ID;
+ connection.Start();
+
+ 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();
+ }
+ }
+ }
+
+ [Test]
+ public void TestMeTransactional()
+ {
+ count = 0;
+
+ RegisterDurableConsumer();
+ SendPersistentMessage();
+
+ using (IConnection connection = Factory.CreateConnection())
+ {
+ connection.ClientId = CLIENT_ID;
+ connection.Start();
+
+ 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();
+ }
+ }
+ }
+
+ /// <summary>
+ ///
+ /// </summary>
+ /// <param name="message"></param>
+ private void consumer_Listener(IMessage message)
+ {
+ ++count;
+ }
+ }
+}
Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs?rev=661426&r1=661425&r2=661426&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/NMSTestSupport.cs Thu May 29 11:06:23 2008
@@ -37,7 +37,7 @@
private ISession session;
private IDestination destination;
- protected TimeSpan receiveTimeout = TimeSpan.FromMilliseconds(1000);
+ protected TimeSpan receiveTimeout = TimeSpan.FromMilliseconds(5000);
protected string clientId;
protected bool persistent = true;
protected DestinationType destinationType = DestinationType.Queue;
@@ -51,7 +51,6 @@
[TearDown]
public virtual void TearDown()
{
- destination = null;
Disconnect();
}
@@ -63,7 +62,10 @@
{
if(value)
{
- Connect();
+ if(connection == null)
+ {
+ Connect();
+ }
}
else
{
@@ -106,7 +108,7 @@
if(session == null)
{
session = Connection.CreateSession(acknowledgementMode);
- Assert.IsNotNull(connection != null, "no session created");
+ Assert.IsNotNull(session, "no session created");
}
return session;
}
@@ -120,11 +122,11 @@
Assert.IsNotNull(connection, "no connection created");
connection.Start();
WriteLine("Connected.");
- Assert.IsNotNull(connection, "no connection created");
}
protected virtual void Disconnect()
{
+ destination = null;
if(session != null)
{
session.Dispose();