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 2012/04/16 19:47:31 UTC
svn commit: r1326694 -
/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs
Author: jgomes
Date: Mon Apr 16 17:47:31 2012
New Revision: 1326694
URL: http://svn.apache.org/viewvc?rev=1326694&view=rev
Log:
Added sync locking of temp destination advisory cache lists.
Minor clean up of assert parameters so they display a clearer error message.
Added test case parameters for persistent and non-persistent test runs for TestConsumeAfterPublishFailsForDestroyedTempDestination.
Modified:
activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs
Modified: activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs
URL: http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs?rev=1326694&r1=1326693&r2=1326694&view=diff
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs (original)
+++ activemq/activemq-dotnet/Apache.NMS.ActiveMQ/trunk/src/test/csharp/TempDestinationTest.cs Mon Apr 16 17:47:31 2012
@@ -39,8 +39,15 @@ namespace Apache.NMS.ActiveMQ.Test
{
base.SetUp();
- this.tempDestsAdded.Clear();
- this.tempDestsRemoved.Clear();
+ lock(this.tempDestsAdded.SyncRoot)
+ {
+ this.tempDestsAdded.Clear();
+ }
+
+ lock(this.tempDestsRemoved.SyncRoot)
+ {
+ this.tempDestsRemoved.Clear();
+ }
}
[TearDown]
@@ -129,8 +136,7 @@ namespace Apache.NMS.ActiveMQ.Test
IMessage message2 = consumer.Receive(TimeSpan.FromMilliseconds(1000));
Assert.IsNotNull(message2);
Assert.IsTrue(message2 is ITextMessage, "Expected message to be a TextMessage");
- Assert.AreEqual(((ITextMessage)message2).Text, message.Text,
- "Expected message to be a '" + message.Text + "'");
+ Assert.AreEqual(message.Text, ((ITextMessage)message2).Text);
}
/// <summary>
@@ -152,9 +158,7 @@ namespace Apache.NMS.ActiveMQ.Test
IMessage message2 = consumer.Receive(TimeSpan.FromMilliseconds(3000));
Assert.IsNotNull(message2);
Assert.IsTrue(message2 is ITextMessage, "Expected message to be a TextMessage");
- Assert.IsTrue(((ITextMessage)message2).Text.Equals(message.Text),
- "Expected message to be a '" + message.Text + "'");
-
+ Assert.AreEqual(message.Text, ((ITextMessage)message2).Text);
}
/// <summary>
@@ -190,7 +194,7 @@ namespace Apache.NMS.ActiveMQ.Test
IMessage message2 = consumer.Receive(TimeSpan.FromMilliseconds(2000));
Assert.IsNotNull(message2);
Assert.AreEqual(i, message2.Properties.GetInt("c"));
- Assert.IsTrue(message2.Equals(list[i]));
+ Assert.AreEqual(list[i], message2);
}
}
@@ -224,8 +228,7 @@ namespace Apache.NMS.ActiveMQ.Test
tempConnection.Close();
WaitForTempDestinationDelete(queue);
- // This message delivery NOT should work since the temp connection is
- // now closed.
+ // This message delivery should NOT work since the temp connection is now closed.
try
{
message = session.CreateTextMessage("Hello");
@@ -255,8 +258,7 @@ namespace Apache.NMS.ActiveMQ.Test
IMessageConsumer advisoryConsumer = session.CreateConsumer(AdvisorySupport.TEMP_DESTINATION_COMPOSITE_ADVISORY_TOPIC);
advisoryConsumer.Listener += OnAdvisoryMessage;
- // This message delivery should work since the temp connection is still
- // open.
+ // This message delivery should work since the temp connection is still open.
IMessageProducer producer = session.CreateProducer(queue);
producer.DeliveryMode = MsgDeliveryMode.NonPersistent;
ITextMessage message = session.CreateTextMessage("First");
@@ -267,8 +269,7 @@ namespace Apache.NMS.ActiveMQ.Test
queue.Delete();
WaitForTempDestinationDelete(queue);
- // This message delivery NOT should work since the temp connection is
- // now closed.
+ // This message delivery should NOT work since the temp connection is now closed.
try
{
message = session.CreateTextMessage("Hello");
@@ -285,7 +286,9 @@ namespace Apache.NMS.ActiveMQ.Test
/// Make sure consumers work after a publisher fails to publish to deleted temp destination.
/// </summary>
[Test]
- public void TestConsumeAfterPublishFailsForDestroyedTempDestination()
+ [TestCase(MsgDeliveryMode.Persistent)]
+ [TestCase(MsgDeliveryMode.NonPersistent)]
+ public void TestConsumeAfterPublishFailsForDestroyedTempDestination(MsgDeliveryMode replyDeliveryMode)
{
const string msgQueueName = "Test.RequestReply.MsgQueue";
Connection consumerConnection = GetNewConnection();
@@ -322,8 +325,8 @@ namespace Apache.NMS.ActiveMQ.Test
// Will the following Receive() call fail on the second or subsequent calls?
IMessage receiveMsg = consumer.Receive();
IMessageProducer replyProducer = consumerSession.CreateProducer(receiveMsg.NMSReplyTo);
+ replyProducer.DeliveryMode = replyDeliveryMode;
- //replyConsumer.Close();
connections.Remove(producerConnection);
producerConnection.Close();
@@ -385,7 +388,7 @@ namespace Apache.NMS.ActiveMQ.Test
loopCount++;
if(loopCount > MaxLoopCount)
{
- Assert.Fail(string.Format("Timeout waiting for delete of {0}", amqTempDestination.PhysicalName));
+ Assert.Fail(string.Format("Timeout waiting for Delete of {0}", amqTempDestination.PhysicalName));
}
Thread.Sleep(10);
@@ -475,7 +478,7 @@ namespace Apache.NMS.ActiveMQ.Test
ITemporaryTopic tempTopic2 = session2.CreateTemporaryTopic();
WaitForTempDestinationAdd(tempTopic2);
- Assert.AreEqual(tempDestsAdded.Count, 11);
+ Assert.AreEqual(11, tempDestsAdded.Count);
connection.PurgeTempDestinations();
@@ -484,7 +487,7 @@ namespace Apache.NMS.ActiveMQ.Test
WaitForTempDestinationDelete(tempTopic);
}
- Assert.AreEqual(tempDestsRemoved.Count, 10);
+ Assert.AreEqual(10, tempDestsRemoved.Count);
}
private readonly IList tempDestsAdded = ArrayList.Synchronized(new ArrayList());
@@ -510,7 +513,11 @@ namespace Apache.NMS.ActiveMQ.Test
{
Tracer.Debug("Connection adding: " + tempDest);
}
- this.tempDestsAdded.Add(tempDest);
+
+ lock(this.tempDestsAdded.SyncRoot)
+ {
+ this.tempDestsAdded.Add(tempDest);
+ }
}
else if(destInfo.OperationType == DestinationInfo.REMOVE_OPERATION_TYPE)
{
@@ -518,7 +525,11 @@ namespace Apache.NMS.ActiveMQ.Test
{
Tracer.Debug("Connection removing: " + tempDest);
}
- this.tempDestsRemoved.Add(tempDest);
+
+ lock(this.tempDestsRemoved.SyncRoot)
+ {
+ this.tempDestsRemoved.Add(tempDest);
+ }
}
}
}