Return-Path: Delivered-To: apmail-activemq-commits-archive@www.apache.org Received: (qmail 44308 invoked from network); 2 Nov 2009 22:26:47 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 2 Nov 2009 22:26:47 -0000 Received: (qmail 33415 invoked by uid 500); 2 Nov 2009 22:26:47 -0000 Delivered-To: apmail-activemq-commits-archive@activemq.apache.org Received: (qmail 33373 invoked by uid 500); 2 Nov 2009 22:26:47 -0000 Mailing-List: contact commits-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list commits@activemq.apache.org Received: (qmail 33364 invoked by uid 99); 2 Nov 2009 22:26:47 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Nov 2009 22:26:47 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 02 Nov 2009 22:26:45 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 6C33223888E5; Mon, 2 Nov 2009 22:26:24 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r832156 - /activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs Date: Mon, 02 Nov 2009 22:26:24 -0000 To: commits@activemq.apache.org From: tabish@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20091102222624.6C33223888E5@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tabish Date: Mon Nov 2 22:26:23 2009 New Revision: 832156 URL: http://svn.apache.org/viewvc?rev=832156&view=rev Log: * ConsumerTest.cs: New test for safety of changing a message after a send and reusing it. Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs Modified: activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs?rev=832156&r1=832155&r2=832156&view=diff ============================================================================== --- activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs (original) +++ activemq/activemq-dotnet/Apache.NMS/trunk/src/test/csharp/ConsumerTest.cs Mon Nov 2 22:26:23 2009 @@ -28,6 +28,8 @@ public class ConsumerTest : NMSTestSupport { protected static string TEST_CLIENT_ID = "TestConsumerClientId"; + protected const int COUNT = 25; + protected const string VALUE_NAME = "value"; private bool dontAck; @@ -166,6 +168,59 @@ [Row(AcknowledgementMode.ClientAcknowledge)] [Row(AcknowledgementMode.DupsOkAcknowledge)] [Row(AcknowledgementMode.Transactional)] + public void TestDoChangeSentMessage(AcknowledgementMode ackMode) + { + using(IConnection connection = CreateConnection(TEST_CLIENT_ID)) + { + connection.Start(); + using(ISession session = connection.CreateSession(ackMode)) + { + ITemporaryQueue queue = session.CreateTemporaryQueue(); + using(IMessageConsumer consumer = session.CreateConsumer(queue)) + { + IMessageProducer producer = session.CreateProducer(queue); + ITextMessage message = session.CreateTextMessage(); + + string prefix = "ConsumerTest - TestDoChangeSentMessage: "; + + for(int i = 0; i < COUNT; i++) + { + message.Properties[VALUE_NAME] = i; + message.Text = prefix + Convert.ToString(i); + + producer.Send(message); + + message.ClearBody(); + message.ClearProperties(); + } + + if(ackMode == AcknowledgementMode.Transactional) + { + session.Commit(); + } + + for(int i = 0; i < COUNT; i++) + { + ITextMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(2000)) as ITextMessage; + Assert.AreEqual(msg.Text, prefix + Convert.ToString(i)); + Assert.AreEqual(msg.Properties[VALUE_NAME], i); + } + + if(ackMode == AcknowledgementMode.Transactional) + { + session.Commit(); + } + + } + } + } + } + + [RowTest] + [Row(AcknowledgementMode.AutoAcknowledge)] + [Row(AcknowledgementMode.ClientAcknowledge)] + [Row(AcknowledgementMode.DupsOkAcknowledge)] + [Row(AcknowledgementMode.Transactional)] public void TestConsumerReceiveBeforeMessageDispatched(AcknowledgementMode ackMode) { // Launch a thread to perform a delayed send.