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/12/09 19:32:57 UTC

svn commit: r724809 - /activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs

Author: jgomes
Date: Tue Dec  9 10:32:57 2008
New Revision: 724809

URL: http://svn.apache.org/viewvc?rev=724809&view=rev
Log:
Added rowtests to support more testing permutations.

Modified:
    activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs

Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs?rev=724809&r1=724808&r2=724809&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/TransactionTest.cs Tue Dec  9 10:32:57 2008
@@ -19,6 +19,7 @@
 using System.Collections;
 using Apache.NMS.Util;
 using NUnit.Framework;
+using NUnit.Framework.Extensions;
 
 namespace Apache.NMS.Test
 {
@@ -29,8 +30,12 @@
 		protected static string TEST_CLIENT_ID = "TransactionTestClientId";
 		protected static string TEST_CLIENT_ID2 = "TransactionTestClientId2";
 
-		[Test]
-		public void TestSendRollback()
+#if !NET_1_1
+		[RowTest]
+		[Row(true)]
+		[Row(false)]
+#endif
+		public void TestSendRollback(bool persistent)
 		{
 			using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
 			{
@@ -41,7 +46,7 @@
 					using(IMessageConsumer consumer = session.CreateConsumer(destination))
 					using(IMessageProducer producer = session.CreateProducer(destination))
 					{
-						producer.Persistent = false;
+						producer.Persistent = persistent;
 						producer.RequestTimeout = receiveTimeout;
 						ITextMessage firstMsgSend = session.CreateTextMessage("First Message");
 						producer.Send(firstMsgSend);
@@ -70,8 +75,12 @@
 			}
 		}
 
-		[Test]
-		public void TestSendSessionClose()
+#if !NET_1_1
+		[RowTest]
+		[Row(true)]
+		[Row(false)]
+#endif
+		public void TestSendSessionClose(bool persistent)
 		{
 			ITextMessage firstMsgSend;
 			ITextMessage secondMsgSend;
@@ -95,7 +104,7 @@
 								IDestination destination2 = SessionUtil.GetDestination(session2, DESTINATION_NAME);
 								using(IMessageProducer producer = session2.CreateProducer(destination2))
 								{
-									producer.Persistent = false;
+									producer.Persistent = persistent;
 									producer.RequestTimeout = receiveTimeout;
 									firstMsgSend = session2.CreateTextMessage("First Message");
 									producer.Send(firstMsgSend);
@@ -116,7 +125,7 @@
 								IDestination destination2 = SessionUtil.GetDestination(session2, DESTINATION_NAME);
 								using(IMessageProducer producer = session2.CreateProducer(destination2))
 								{
-									producer.Persistent = false;
+									producer.Persistent = persistent;
 									producer.RequestTimeout = receiveTimeout;
 									secondMsgSend = session2.CreateTextMessage("Second Message");
 									producer.Send(secondMsgSend);
@@ -139,8 +148,12 @@
 			}
 		}
 
-		[Test]
-		public void TestReceiveRollback()
+#if !NET_1_1
+		[RowTest]
+		[Row(true)]
+		[Row(false)]
+#endif
+		public void TestReceiveRollback(bool persistent)
 		{
 			using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
 			{
@@ -151,7 +164,7 @@
 					using(IMessageConsumer consumer = session.CreateConsumer(destination))
 					using(IMessageProducer producer = session.CreateProducer(destination))
 					{
-						producer.Persistent = false;
+						producer.Persistent = persistent;
 						producer.RequestTimeout = receiveTimeout;
 						// Send both messages
 						ITextMessage firstMsgSend = session.CreateTextMessage("First Message");
@@ -180,8 +193,12 @@
 		}
 
 
-		[Test]
-		public void TestReceiveTwoThenRollback()
+#if !NET_1_1
+		[RowTest]
+		[Row(true)]
+		[Row(false)]
+#endif
+		public void TestReceiveTwoThenRollback(bool persistent)
 		{
 			using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
 			{
@@ -192,7 +209,7 @@
 					using(IMessageConsumer consumer = session.CreateConsumer(destination))
 					using(IMessageProducer producer = session.CreateProducer(destination))
 					{
-						producer.Persistent = false;
+						producer.Persistent = persistent;
 						producer.RequestTimeout = receiveTimeout;
 						// Send both messages
 						ITextMessage firstMsgSend = session.CreateTextMessage("First Message");
@@ -222,6 +239,70 @@
 			}
 		}
 
+#if !NET_1_1
+		[RowTest]
+		[Row(AcknowledgementMode.AutoAcknowledge, true)]
+		[Row(AcknowledgementMode.AutoAcknowledge, false)]
+		[Row(AcknowledgementMode.ClientAcknowledge, true)]
+		[Row(AcknowledgementMode.ClientAcknowledge, false)]
+#endif
+		[ExpectedException(typeof(InvalidOperationException))]
+		public void TestSendCommitNonTransaction(AcknowledgementMode ackMode, bool persistent)
+		{
+			using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
+			{
+				connection.Start();
+				using(ISession session = connection.CreateSession(ackMode))
+				{
+					IDestination destination = SessionUtil.GetDestination(session, DESTINATION_NAME);
+					using(IMessageConsumer consumer = session.CreateConsumer(destination))
+					using(IMessageProducer producer = session.CreateProducer(destination))
+					{
+						producer.Persistent = persistent;
+						producer.RequestTimeout = receiveTimeout;
+						ITextMessage firstMsgSend = session.CreateTextMessage("SendCommitNonTransaction Message");
+						producer.Send(firstMsgSend);
+						session.Commit();
+					}
+				}
+			}
+		}
+
+#if !NET_1_1
+		[RowTest]
+		[Row(AcknowledgementMode.AutoAcknowledge, true)]
+		[Row(AcknowledgementMode.AutoAcknowledge, false)]
+		[Row(AcknowledgementMode.ClientAcknowledge, true)]
+		[Row(AcknowledgementMode.ClientAcknowledge, false)]
+#endif
+		[ExpectedException(typeof(InvalidOperationException))]
+		public void TestReceiveCommitNonTransaction(AcknowledgementMode ackMode, bool persistent)
+		{
+			using(IConnection connection = CreateConnection(TEST_CLIENT_ID))
+			{
+				connection.Start();
+				using(ISession session = connection.CreateSession(ackMode))
+				{
+					IDestination destination = SessionUtil.GetDestination(session, DESTINATION_NAME);
+					using(IMessageConsumer consumer = session.CreateConsumer(destination))
+					using(IMessageProducer producer = session.CreateProducer(destination))
+					{
+						producer.Persistent = persistent;
+						producer.RequestTimeout = receiveTimeout;
+						ITextMessage firstMsgSend = session.CreateTextMessage("ReceiveCommitNonTransaction Message");
+						producer.Send(firstMsgSend);
+
+						// Receive the messages
+
+						IMessage message = consumer.Receive(receiveTimeout);
+						AssertTextMessageEqual(firstMsgSend, message, "First message does not match.");
+						message.Acknowledge();
+						session.Commit();
+					}
+				}
+			}
+		}
+
 		/// <summary>
 		/// Assert that two messages are ITextMessages and their text bodies are equal.
 		/// </summary>