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/12/08 15:44:55 UTC

svn commit: r888414 - /activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs

Author: tabish
Date: Tue Dec  8 14:44:54 2009
New Revision: 888414

URL: http://svn.apache.org/viewvc?rev=888414&view=rev
Log:
https://issues.apache.org/activemq/browse/AMQNET-216

Add additional code to try and ensure the DLQ is clear.

Modified:
    activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs

Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs?rev=888414&r1=888413&r2=888414&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/branches/1.2.x/src/test/csharp/AMQRedeliveryPolicyTest.cs Tue Dec  8 14:44:54 2009
@@ -27,11 +27,11 @@
 
 namespace Apache.NMS.Test
 {
-    [TestFixture]    
+    [TestFixture]
     public class AMQRedeliveryPolicyTest : NMSTestSupport
     {
         private const string DESTINATION_NAME = "RedeliveryPolicyTestDest";
-        
+
         [Test]
         public void TestExponentialRedeliveryPolicyDelaysDeliveryOnRollback()
         {
@@ -42,39 +42,39 @@
                 policy.BackOffMultiplier = 2;
                 policy.UseExponentialBackOff = true;
                 policy.UseCollisionAvoidance = false;
-                
+
                 connection.Start();
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
                 IDestination destination = session.CreateTemporaryQueue();
                 IMessageProducer producer = session.CreateProducer(destination);
-                
+
                 IMessageConsumer consumer = session.CreateConsumer(destination);
-        
+
                 // Send the messages
                 producer.Send(session.CreateTextMessage("1st"));
                 producer.Send(session.CreateTextMessage("2nd"));
                 session.Commit();
-                
+
                 ITextMessage m;
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-        
+
                 // No delay on first Rollback..
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
                 Assert.IsNotNull(m);
                 session.Rollback();
-                
+
                 // Show subsequent re-delivery delay is incrementing.
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
                 Assert.IsNull(m);
-                
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(700));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-                
+
                 // Show re-delivery delay is incrementing exponentially
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
                 Assert.IsNull(m);
@@ -82,8 +82,8 @@
                 Assert.IsNull(m);
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(700));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-            }            
+                Assert.AreEqual("1st", m.Text);
+            }
         }
 
         [Test]
@@ -94,38 +94,38 @@
                 IRedeliveryPolicy policy = connection.RedeliveryPolicy;
                 policy.InitialRedeliveryDelay = 500;
                 policy.UseExponentialBackOff = false;
-                
+
                 connection.Start();
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
                 IDestination destination = session.CreateTemporaryQueue();
-                
+
                 IMessageProducer producer = session.CreateProducer(destination);
                 IMessageConsumer consumer = session.CreateConsumer(destination);
-        
+
                 // Send the messages
                 producer.Send(session.CreateTextMessage("1st"));
                 producer.Send(session.CreateTextMessage("2nd"));
                 session.Commit();
-                
+
                 ITextMessage m;
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-        
+
                 // No delay on first Rollback..
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
                 Assert.IsNotNull(m);
                 session.Rollback();
-                
+
                 // Show subsequent re-delivery delay is incrementing.
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
                 Assert.IsNull(m);
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(700));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-                
+
                 // The message gets redelivered after 500 ms every time since
                 // we are not using exponential backoff.
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(100));
@@ -135,68 +135,70 @@
                 Assert.AreEqual("1st", m.Text);
             }
         }
-    
+
         [Test]
-        public void TestDLQHandling() 
+        public void TestDLQHandling()
         {
             using(Connection connection = (Connection) CreateConnection())
-            {            
+            {
                 IRedeliveryPolicy policy = connection.RedeliveryPolicy;
                 policy.InitialRedeliveryDelay = 100;
                 policy.UseExponentialBackOff = false;
                 policy.MaximumRedeliveries = 2;
-                
+
                 connection.Start();
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
                 IDestination destination = session.CreateTemporaryQueue();
                 IMessageProducer producer = session.CreateProducer(destination);
-                
+
+                session.DeleteDestination(new ActiveMQQueue("ActiveMQ.DLQ"));
+
                 IMessageConsumer consumer = session.CreateConsumer(destination);
                 IMessageConsumer dlqConsumer = session.CreateConsumer(new ActiveMQQueue("ActiveMQ.DLQ"));
-        
-				// Purge any messages already in the DLQ.
-				while(dlqConsumer.ReceiveNoWait() != null)
-				{
-					session.Commit();
-				}
-				
+
+                // Purge any messages already in the DLQ.
+                while(dlqConsumer.ReceiveNoWait() != null)
+                {
+                    session.Commit();
+                }
+
                 // Send the messages
                 producer.Send(session.CreateTextMessage("1st"));
                 producer.Send(session.CreateTextMessage("2nd"));
                 session.Commit();
-                
+
                 ITextMessage m;
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-        
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-        
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-                
-                // The last Rollback should cause the 1st message to get sent to the DLQ 
+
+                // The last Rollback should cause the 1st message to get sent to the DLQ
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("2nd", m.Text);        
+                Assert.AreEqual("2nd", m.Text);
                 session.Commit();
-                
+
                 // We should be able to get the message off the DLQ now.
                 m = (ITextMessage)dlqConsumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Commit();
             }
         }
 
         [Test]
-        public void TestInfiniteMaximumNumberOfRedeliveries() 
+        public void TestInfiniteMaximumNumberOfRedeliveries()
         {
             using(Connection connection = (Connection) CreateConnection())
             {
@@ -205,61 +207,61 @@
                 policy.UseExponentialBackOff = false;
                 // let's set the maximum redeliveries to no maximum (ie. infinite)
                 policy.MaximumRedeliveries = -1;
-                
+
                 connection.Start();
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
                 IDestination destination = session.CreateTemporaryQueue();
                 IMessageProducer producer = session.CreateProducer(destination);
-                
+
                 IMessageConsumer consumer = session.CreateConsumer(destination);
-                
+
                 // Send the messages
                 producer.Send(session.CreateTextMessage("1st"));
                 producer.Send(session.CreateTextMessage("2nd"));
                 session.Commit();
-                   
+
                 ITextMessage m;
-         
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-                
+
                 //we should be able to get the 1st message redelivered until a session.Commit is called
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-                session.Rollback();           
-                
+                Assert.AreEqual("1st", m.Text);
+                session.Rollback();
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-                session.Rollback();  
-                
+                Assert.AreEqual("1st", m.Text);
+                session.Rollback();
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-                session.Rollback();  
-                
+                Assert.AreEqual("1st", m.Text);
+                session.Rollback();
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-                session.Rollback();  
-                
+                Assert.AreEqual("1st", m.Text);
+                session.Rollback();
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
-                session.Commit();  
-                
+                Assert.AreEqual("1st", m.Text);
+                session.Commit();
+
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("2nd", m.Text);        
+                Assert.AreEqual("2nd", m.Text);
                 session.Commit();
             }
         }
 
         [Test]
-        public void TestZeroMaximumNumberOfRedeliveries() 
+        public void TestZeroMaximumNumberOfRedeliveries()
         {
             using(Connection connection = (Connection) CreateConnection())
             {
@@ -268,32 +270,32 @@
                 policy.UseExponentialBackOff = false;
                 //let's set the maximum redeliveries to 0
                 policy.MaximumRedeliveries = 0;
-              
+
                 connection.Start();
                 ISession session = connection.CreateSession(AcknowledgementMode.Transactional);
                 IDestination destination = session.CreateTemporaryQueue();
                 IMessageProducer producer = session.CreateProducer(destination);
-                
+
                 IMessageConsumer consumer = session.CreateConsumer(destination);
-                
+
                 // Send the messages
                 producer.Send(session.CreateTextMessage("1st"));
                 producer.Send(session.CreateTextMessage("2nd"));
                 session.Commit();
-                
+
                 ITextMessage m;
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("1st", m.Text);        
+                Assert.AreEqual("1st", m.Text);
                 session.Rollback();
-                
+
                 //the 1st  message should not be redelivered since maximumRedeliveries is set to 0
                 m = (ITextMessage)consumer.Receive(TimeSpan.FromMilliseconds(1000));
                 Assert.IsNotNull(m);
-                Assert.AreEqual("2nd", m.Text);        
+                Assert.AreEqual("2nd", m.Text);
                 session.Commit();
             }
-        }    
-        
+        }
+
     }
 }