You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2009/11/02 21:59:56 UTC

svn commit: r832105 - /activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/DurableTest.cs

Author: tabish
Date: Mon Nov  2 20:59:55 2009
New Revision: 832105

URL: http://svn.apache.org/viewvc?rev=832105&view=rev
Log:
* DurableTest.cs: 

Add another test variation to the Durable Test

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=832105&r1=832104&r2=832105&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 Mon Nov  2 20:59:55 2009
@@ -16,6 +16,7 @@
  */
 
 using System;
+using System.Threading;
 using NUnit.Framework;
 using NUnit.Framework.Extensions;
 using Apache.NMS.Util;
@@ -36,6 +37,66 @@
 		[Row(AcknowledgementMode.ClientAcknowledge)]
 		[Row(AcknowledgementMode.DupsOkAcknowledge)]
 		[Row(AcknowledgementMode.Transactional)]
+		public void TestSendWhileClosed(AcknowledgementMode ackMode)
+		{
+			try
+			{				
+		        using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
+				{
+			        connection.Start();
+					
+					using(ISession session = connection.CreateSession(ackMode))
+					{
+						ITopic topic = session.GetTopic(DURABLE_TOPIC);
+						IMessageProducer producer = session.CreateProducer(topic);
+
+						producer.DeliveryMode = MsgDeliveryMode.Persistent;
+										
+				        ISession consumeSession = connection.CreateSession(ackMode);
+				        IMessageConsumer consumer = consumeSession.CreateDurableConsumer(topic, CONSUMER_ID, null, false);
+				        Thread.Sleep(1000);
+				        consumer.Dispose();
+						consumer = null;
+				        
+						ITextMessage message = session.CreateTextMessage("DurableTest-TestSendWhileClosed");
+				        message.Properties.SetString("test", "test");
+				        message.NMSType = "test";
+				        producer.Send(message);
+						if(AcknowledgementMode.Transactional == ackMode)
+						{
+							session.Commit();
+						}
+										        
+						consumer = consumeSession.CreateDurableConsumer(topic, CONSUMER_ID, null, false);
+				        ITextMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(1000)) as ITextMessage;
+						msg.Acknowledge();
+						if(AcknowledgementMode.Transactional == ackMode)
+						{
+							consumeSession.Commit();
+						}
+						
+						Assert.IsNotNull(msg);
+				        Assert.AreEqual(msg.Text, "DurableTest-TestSendWhileClosed");
+				        Assert.AreEqual(msg.NMSType, "test");
+				        Assert.AreEqual(msg.Properties.GetString("test"), "test");
+					}
+				}
+			}
+			catch(Exception ex)
+			{
+				Assert.Fail(ex.Message);
+			}
+			finally
+			{
+				UnregisterDurableConsumer(TEST_CLIENT_ID, CONSUMER_ID);
+			}			
+	    }		
+		
+		[RowTest]
+		[Row(AcknowledgementMode.AutoAcknowledge)]
+		[Row(AcknowledgementMode.ClientAcknowledge)]
+		[Row(AcknowledgementMode.DupsOkAcknowledge)]
+		[Row(AcknowledgementMode.Transactional)]
 		public void TestDurableConsumerSelectorChange(AcknowledgementMode ackMode)
 		{
 			try