You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by sh...@apache.org on 2010/05/04 00:09:35 UTC

svn commit: r940655 - /qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs

Author: shuston
Date: Mon May  3 22:09:34 2010
New Revision: 940655

URL: http://svn.apache.org/viewvc?rev=940655&view=rev
Log:
Forgotten file from last week; resolves QPID-2564.

Added:
    qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs

Added: qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs?rev=940655&view=auto
==============================================================================
--- qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs (added)
+++ qpid/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/ChannelAbortCommitTest.cs Mon May  3 22:09:34 2010
@@ -0,0 +1,113 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements.  See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership.  The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License.  You may obtain a copy of the License at
+*
+*   http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied.  See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+namespace Apache.Qpid.Test.Channel.Functional
+{
+    using System.Collections.Generic;
+    using System.ServiceModel.Channels;
+    using NUnit.Framework;
+
+    [TestFixture(1, true, false, true, true)]
+    [TestFixture(1, true, false, true, false)]
+    [TestFixture(1, true, false, false, true)]
+    [TestFixture(1, true, false, false, false)]
+    [TestFixture(1, false, true, true, true)]
+    [TestFixture(1, false, true, true, false)]
+    [TestFixture(1, false, true, false, true)]
+    [TestFixture(1, false, true, false, false)]
+    [TestFixture(5, true, false, true, true)]
+    [TestFixture(5, true, false, true, false)]
+    [TestFixture(5, true, false, false, true)]
+    [TestFixture(5, true, false, false, false)]
+    [TestFixture(5, false, true, true, true)]
+    [TestFixture(5, false, true, true, false)]
+    [TestFixture(5, false, true, false, true)]
+    [TestFixture(5, false, true, false, false)]
+    public class ChannelAbortCommitTest
+    {
+        private const string SendToUri = "amqp:amq.direct?routingkey=routing_key";
+        private const string ListenUri = "amqp:message_queue";
+
+        private ChannelContextParameters contextParameters;
+        private Binding channelBinding;
+        private List<string> expectedResults;
+
+        public ChannelAbortCommitTest(int numberOfThreads, bool sendAbort, bool receiveAbort, bool asyncSend, bool asyncReceive)
+        {
+            this.contextParameters = new ChannelContextParameters();
+            this.contextParameters.NumberOfThreads = numberOfThreads;
+            this.contextParameters.SenderShouldAbort = sendAbort;
+            this.contextParameters.ReceiverShouldAbort = receiveAbort;
+            this.contextParameters.AsyncSend = asyncSend;
+            this.contextParameters.AsyncReceive = asyncReceive;            
+        }
+
+        [SetUp]
+        public void Setup()
+        {
+            this.channelBinding = Util.GetBinding();
+            this.GenerateExpectedResults();
+        }
+
+        [Test]
+        public void Run()
+        {
+            ChannelReceiver receiver = new ChannelReceiver(this.contextParameters, this.channelBinding);
+            ChannelSender sender = new ChannelSender(this.contextParameters, this.channelBinding);
+
+            sender.Run(SendToUri);
+            receiver.Run(ListenUri);
+
+            // Validate results.
+            bool comparisonOutcome = Util.CompareResults(this.expectedResults, receiver.Results);
+            Assert.AreEqual(true, comparisonOutcome, "The actual results were not as expected");
+            Assert.AreEqual(0, Util.GetMessageCountFromQueue(ListenUri), "The actual message count wasn't as expected.");
+        }
+
+        [TearDown]
+        public void Cleanup()
+        {
+            Util.PurgeQueue(ListenUri);
+        }
+
+        private void GenerateExpectedResults()
+        {
+            this.expectedResults = new List<string>();
+
+            if (this.contextParameters.NumberOfThreads == 1)
+            {
+                this.expectedResults.Add("Received message with Action 'FirstMessage'");
+                this.expectedResults.Add("Received message with Action 'Message 1'");
+                this.expectedResults.Add("Received message with Action 'Message 2'");
+                this.expectedResults.Add("Received message with Action 'Message 3'");
+                this.expectedResults.Add("Received message with Action 'Message 4'");
+                this.expectedResults.Add("Received message with Action 'Message 5'");
+            }
+            else
+            {
+                this.expectedResults.Add("Received message with Action 'FirstMessage'");
+                this.expectedResults.Add("Received message with Action 'Message'");
+                this.expectedResults.Add("Received message with Action 'Message'");
+                this.expectedResults.Add("Received message with Action 'Message'");
+                this.expectedResults.Add("Received message with Action 'Message'");
+                this.expectedResults.Add("Received message with Action 'Message'");
+            }
+        }
+    }
+}



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org