diff options
author | Michael Barker <mike@middlesoft.co.uk> | 2009-07-14 00:59:00 +0400 |
---|---|---|
committer | Michael Barker <mike@middlesoft.co.uk> | 2009-07-14 00:59:00 +0400 |
commit | 95dc3521c07b15316c0087fb5f088e65162077e4 (patch) | |
tree | 451b8996f7f6b9c816f66c71a0ec3b91b2244210 /mcs/class/Mono.Messaging.RabbitMQ | |
parent | 972ba36bac338904d6ec443814683a5bca6352d0 (diff) | |
parent | 9e3a325d750510b55beacc23db3d79b6d247c835 (diff) |
2009-07-11 Michael Barker <mike@middlesoft.co.uk>
* MessageQueueException.cs: Removed MonoTODO.
* MessageBaseTest.cs: Moved from Mono.Messaging.Test
* MessageEnumeratorTest.cs: Moved from Mono.Messaging.Test
* MessageTest.cs: Used using aliases to prevent namespace clashes.
* AdminTest.cs: Remove unused variables.
* AsyncPeekTest.cs: Remove unused variables.
* AsyncReceiveTest.cs: Remove unused variables.
* MessageFactory.cs: Switched to DateTime.UtcNow.
* RabbitMQMessageQueue.cs: Removed some unecessary references to realm.
* RabbitMQMessagingProvider.cs: Removed some unecessary references to realm.
Changed volatile field to use Interlocked.Increment (++i is not thread safe).
* Mono.Messaging.RabbitMQ_test.dll.sources: Moved MessageEnumeratorTest.cs
and MessageBaseTest.cs from Mono.Messaging.Test.
* MessageBaseTest.cs: Moved to Mono.Messaging.RabbitMQ.Test
* MessageEnumeratorTest.cs: Moved to Mono.Messaging.RabbitMQ.Test
* MessagingProviderLocator.cs: Removed unessecary fields, made fields
readonly and some formatting changes.
* Mono.Messaging_test.dll.sources: Moved MessageBaseTest.cs and
MessageEnumeratorTest.cs to Mono.Messaging.RabbitMQ.Test.
svn path=/trunk/mcs/; revision=137816
Diffstat (limited to 'mcs/class/Mono.Messaging.RabbitMQ')
16 files changed, 270 insertions, 27 deletions
diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Assembly/AssemblyInfo.cs b/mcs/class/Mono.Messaging.RabbitMQ/Assembly/AssemblyInfo.cs index 0cdccf6c4ed..ed35d9aa8d1 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Assembly/AssemblyInfo.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Assembly/AssemblyInfo.cs @@ -53,7 +53,7 @@ using System.Runtime.InteropServices; [assembly: ComVisible (false)] -[assembly: CLSCompliant (true)] +[assembly: CLSCompliant (false)] [assembly: AssemblyDelaySign (true)] [assembly: AssemblyKeyFile("../msfinal.pub")] diff --git a/mcs/class/Mono.Messaging.RabbitMQ/ChangeLog b/mcs/class/Mono.Messaging.RabbitMQ/ChangeLog index 7812d3ee03d..76528499b65 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/ChangeLog +++ b/mcs/class/Mono.Messaging.RabbitMQ/ChangeLog @@ -1,3 +1,8 @@ +2009-07-11 Michael Barker <mike@middlesoft.co.uk> + + * Mono.Messaging.RabbitMQ_test.dll.sources: Moved MessageEnumeratorTest.cs + and MessageBaseTest.cs from Mono.Messaging.Test. + 2009-01-05 Michael Barker <mike@middlesoft.co.uk> * Makefile: Added nunit.mocks to test build diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/ChangeLog b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/ChangeLog index c2caba20d62..e9c111dd57c 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/ChangeLog +++ b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/ChangeLog @@ -1,3 +1,10 @@ +2009-07-11 Michael Barker <mike@middlesoft.co.uk> + + * MessageFactory.cs: Switched to DateTime.UtcNow. + * RabbitMQMessageQueue.cs: Removed some unecessary references to realm. + * RabbitMQMessagingProvider.cs: Removed some unecessary references to realm. + Changed volatile field to use Interlocked.Increment (++i is not thread safe). + 2009-05-23 Michael Barker <mike@middlesoft.co.uk> * MessageFactory.cs: Moved TimeSpanToInt32 method to here. diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/MessageFactory.cs b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/MessageFactory.cs index cdf57dd7d6a..fa9d44d5f4c 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/MessageFactory.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/MessageFactory.cs @@ -85,7 +85,7 @@ namespace Mono.Messaging.RabbitMQ { if (msg.CorrelationId != null) mb.Properties.CorrelationId = msg.CorrelationId; // TODO: Change to DateTime.UtcNow?? - mb.Properties.Timestamp = MessageFactory.DateTimeToAmqpTimestamp (DateTime.Now); + mb.Properties.Timestamp = MessageFactory.DateTimeToAmqpTimestamp (DateTime.UtcNow); Hashtable headers = new Hashtable (); headers[SENDER_VERSION_KEY] = msg.SenderVersion; diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessageQueue.cs b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessageQueue.cs index ef2f6461df1..03069f252ad 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessageQueue.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessageQueue.cs @@ -62,7 +62,6 @@ namespace Mono.Messaging.RabbitMQ { private QueueReference qRef = QueueReference.DEFAULT; private readonly RabbitMQMessagingProvider provider; private readonly MessageFactory helper; - private readonly string realm; private readonly bool transactional; public RabbitMQMessageQueue (RabbitMQMessagingProvider provider, @@ -74,17 +73,9 @@ namespace Mono.Messaging.RabbitMQ { public RabbitMQMessageQueue (RabbitMQMessagingProvider provider, QueueReference qRef, bool transactional) - : this (provider, "/data", qRef, transactional) - { - } - - public RabbitMQMessageQueue (RabbitMQMessagingProvider provider, - string realm, QueueReference qRef, - bool transactional) { this.provider = provider; this.helper = new MessageFactory (provider); - this.realm = realm; this.qRef = qRef; this.transactional = transactional; } @@ -203,7 +194,7 @@ namespace Mono.Messaging.RabbitMQ { // No-op (Queue are currently stateless) } - public static void Delete (string realm, QueueReference qRef) + public static void Delete (QueueReference qRef) { ConnectionFactory cf = new ConnectionFactory (); diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessagingProvider.cs b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessagingProvider.cs index 45445659d0e..90aaf7101a5 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessagingProvider.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ/RabbitMQMessagingProvider.cs @@ -40,9 +40,8 @@ namespace Mono.Messaging.RabbitMQ { public class RabbitMQMessagingProvider : IMessagingProvider { - private volatile uint txCounter = 0; + private int txCounter = 0; private readonly uint localIp; - private static readonly string DEFAULT_REALM = "/data"; public RabbitMQMessagingProvider() { @@ -74,13 +73,14 @@ namespace Mono.Messaging.RabbitMQ { public IMessageQueueTransaction CreateMessageQueueTransaction () { - string txId = localIp.ToString () + (++txCounter).ToString (); + Interlocked.Increment (ref txCounter); + string txId = localIp.ToString () + txCounter.ToString (); return new RabbitMQMessageQueueTransaction (txId); } public void DeleteQueue (QueueReference qRef) { - RabbitMQMessageQueue.Delete (DEFAULT_REALM, qRef); + RabbitMQMessageQueue.Delete (qRef); } private readonly IDictionary queues = new Hashtable (); diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ_test.dll.sources b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ_test.dll.sources index 13e7409ef08..3ba70c17b48 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ_test.dll.sources +++ b/mcs/class/Mono.Messaging.RabbitMQ/Mono.Messaging.RabbitMQ_test.dll.sources @@ -12,4 +12,6 @@ Mono.Messaging.RabbitMQ/AsyncPeekTest.cs Mono.Messaging.RabbitMQ/BinaryMessageFormatterTest.cs Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs Mono.Messaging.RabbitMQ/TestUtils.cs -Mono.Messaging.RabbitMQ/MessageTest.cs
\ No newline at end of file +Mono.Messaging.RabbitMQ/MessageTest.cs +Mono.Messaging.RabbitMQ/MessageBaseTest.cs +Mono.Messaging.RabbitMQ/MessageEnumeratorExceptionTest.cs diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AdminTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AdminTest.cs index 612f401988d..954cdf4bb86 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AdminTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AdminTest.cs @@ -109,7 +109,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ q.Send (m3); q.Send (m4); - Message received = q.Receive (); + q.Receive (); q.Purge (); q.Receive (new TimeSpan (0, 0, 2)); } @@ -122,7 +122,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ q.Send (m1); - Message received = q.Receive (); + q.Receive (); MessageQueue.Delete(@".\private$\delete-queue"); } diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncPeekTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncPeekTest.cs index 9663aa63ef7..ae4b2d86851 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncPeekTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncPeekTest.cs @@ -134,7 +134,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ MessageQueue q = MQUtil.GetQueue (@".\private$\async-peek-5"); IAsyncResult result = q.BeginPeek (new TimeSpan (0, 0, 2)); result.AsyncWaitHandle.WaitOne (); - Message rMsg = q.EndPeek (result); + q.EndPeek (result); } } } diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncReceiveTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncReceiveTest.cs index e7febea3c2a..1027a7e47f2 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncReceiveTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/AsyncReceiveTest.cs @@ -134,7 +134,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ MessageQueue q = MQUtil.GetQueue (@".\private$\async-peek-5"); IAsyncResult result = q.BeginReceive (new TimeSpan (0, 0, 2)); result.AsyncWaitHandle.WaitOne (); - Message rMsg = q.EndReceive (result); + q.EndReceive (result); } } } diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/BasicMessagingTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/BasicMessagingTest.cs index 57e02307c41..3d2e3805baa 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/BasicMessagingTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/BasicMessagingTest.cs @@ -118,7 +118,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ Assert.IsNotNull (pi, "Property not defined: " + property); object o = pi.GetValue (m, null); Assert.Fail (property + ": " + o); - } catch (InvalidOperationException e) { + } catch (InvalidOperationException) { } catch (TargetInvocationException e) { Assert.AreEqual (typeof (InvalidOperationException), e.InnerException.GetType ()); @@ -153,7 +153,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ Assert.IsNotNull(pi, "Property not defined: " + property); pi.SetValue(m, null, null); Assert.Fail(property); - } catch (InvalidOperationException e) { + } catch (InvalidOperationException) { } catch (TargetInvocationException e) { Assert.AreEqual(exceptionType, e.InnerException.GetType(), diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/ChangeLog b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/ChangeLog index 8de774bbb81..90a48b0e0e8 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/ChangeLog +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/ChangeLog @@ -1,3 +1,12 @@ +2009-07-11 Michael Barker <mike@middlesoft.co.uk> + + * MessageBaseTest.cs: Moved from Mono.Messaging.Test + * MessageEnumeratorTest.cs: Moved from Mono.Messaging.Test + * MessageTest.cs: Used using aliases to prevent namespace clashes. + * AdminTest.cs: Remove unused variables. + * AsyncPeekTest.cs: Remove unused variables. + * AsyncReceiveTest.cs: Remove unused variables. + 2009-05-23 Michael Barker <mike@middlesoft.co.uk> * MessageEnumeratorTest.cs: Added tests for timeout methods. diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageBaseTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageBaseTest.cs new file mode 100644 index 00000000000..868448d88f1 --- /dev/null +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageBaseTest.cs @@ -0,0 +1,119 @@ +// +// Mono.Messaging.RabbitMQ +// +// Authors: +// Michael Barker (mike@middlesoft.co.uk) +// +// (C) 2008 Michael Barker +// + +// +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// + +using System; +using System.Messaging; +using System.Reflection; +using Mono.Messaging; + +using SystemAcknowledgeTypes = System.Messaging.AcknowledgeTypes; +using SystemCryptographicProviderType = System.Messaging.CryptographicProviderType; +using SystemEncryptionAlgorithm = System.Messaging.EncryptionAlgorithm; +using SystemHashAlgorithm = System.Messaging.HashAlgorithm; +using SystemMessagePriority = System.Messaging.MessagePriority; + +using NUnit.Framework; + +namespace MonoTests.Mono.Messaging { + + [TestFixture] + public class MessageBaseTest { + + [Test] + public void CheckDefaultValues () + { + Type[] types = { + typeof (IMessage), typeof (object), typeof (IMessageFormatter) + }; + + ConstructorInfo ci = typeof (Message).GetConstructor ( + BindingFlags.NonPublic | BindingFlags.Instance, + Type.DefaultBinder, types, new ParameterModifier[0]); + + if (ci == null) + throw new Exception ("ConstructorInfo is null"); + + Message m = (Message) ci.Invoke (new object[] { new MessageBase (), null, null }); + + Assert.IsNull (m.Body, "Body default should be Null"); + Assert.IsNull (m.Formatter, "Formatter default should null"); + + Assert.AreEqual (SystemAcknowledgeTypes.None, + m.AcknowledgeType, + "AcknowledgeType default should be None"); + Assert.AreEqual (null, m.AdministrationQueue, + "AdministrationQueue default should be null"); + Assert.AreEqual (0, m.AppSpecific, "AppSpecific default should be 0"); + Assert.AreEqual (true, m.AttachSenderId, "AttachSenderId default should be true"); + Assert.AreEqual ("Microsoft Base Cryptographic Provider, Ver. 1.0", m.AuthenticationProviderName, + "AuthenticationProviderName should default to \"Microsoft Base Cryptographic Provider, Ver. 1.0\""); + Assert.AreEqual (SystemCryptographicProviderType.RsaFull, + m.AuthenticationProviderType, + "AuthenticationProviderType should default to RsaFull"); + Assert.AreEqual (null, m.BodyStream, "BodyStream should default to null"); + Assert.AreEqual (Guid.Empty, m.ConnectorType, "ConnectorType should default to empty"); + Assert.AreEqual (null, m.CorrelationId, "CorrelationId should default to null"); + Assert.AreEqual (new byte[0], m.DestinationSymmetricKey, + "DestinationSymmetricKey should default to an empty array"); + Assert.AreEqual (new byte[0], m.DigitalSignature, + "DigitalSignature default to an empty array"); + Assert.AreEqual (SystemEncryptionAlgorithm.Rc2, + m.EncryptionAlgorithm, + "EncryptionAlgorithm should default to Rc2"); + Assert.AreEqual (new byte[0], m.Extension, + "Extension should default to an empty array"); + Assert.AreEqual (SystemHashAlgorithm.Sha, m.HashAlgorithm, + "HashAlgorithm should default to Sha"); + Assert.AreEqual (Guid.Empty.ToString () + "\\0", m.Id, "Id should default to Guid.Empty"); + Assert.AreEqual ("", m.Label, "Label should default to \"\""); + Assert.AreEqual (false, m.IsFirstInTransaction, "IsFirstInTransaction should default to false"); + Assert.AreEqual (false, m.IsLastInTransaction, "IsLastInTransaction should default to false"); + Assert.AreEqual (SystemMessagePriority.Normal, m.Priority, + "Priority should default to Normal"); + Assert.AreEqual (false, m.Recoverable, "Recoverable should default to false"); + Assert.AreEqual (null, m.ResponseQueue, "ResponseQueue should default to null"); + //Assert.AreEqual (null, m.SecurityContext, "SecurityContext should default to null"); + Assert.AreEqual (new byte[0], m.SenderCertificate, + "SenderCertificate should default to an empty array"); + Assert.AreEqual (Message.InfiniteTimeout, m.TimeToBeReceived, + "TimeToBeReceived should default to InfiniteTimeout"); + Assert.AreEqual (Message.InfiniteTimeout, m.TimeToReachQueue, + "TimeToReadQueue should default to InfiniteTimeout"); + Assert.AreEqual (false, m.UseAuthentication, + "UseAuthentication should default to false"); + Assert.AreEqual (false, m.UseDeadLetterQueue, + "UseDeadLetterQueue should default to false"); + Assert.AreEqual (false, m.UseEncryption, "Encryption should default to false"); + Assert.AreEqual (false, m.UseJournalQueue, + "UseJournalQueue should default to false"); + Assert.AreEqual (false, m.UseTracing, "UseTracing should default to false"); + } + } +} diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageEnumeratorExceptionTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageEnumeratorExceptionTest.cs new file mode 100644 index 00000000000..c3507ed1865 --- /dev/null +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageEnumeratorExceptionTest.cs @@ -0,0 +1,109 @@ +//
+// MessageEnumeratorTest.cs -
+// NUnit Test Cases for MessageEnumerator
+//
+// Author:
+// Michael Barker <mike@middlesoft.co.uk>
+//
+// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+using System;
+using System.Security;
+using System.Security.Permissions; +using System.Reflection; + +using Mono.Messaging; + +using SystemMessageEnumerator = System.Messaging.MessageEnumerator; +using SystemMessageQueueException = System.Messaging.MessageQueueException; +using SystemIMessageFormatter = System.Messaging.IMessageFormatter; + +using NUnit.Framework; +using NUnit.Mocks;
+
+
+namespace MonoTests.Mono.Messaging {
+ + [TestFixture]
+ public class MessageEnumeratorExceptionTest + { + private DynamicMock mockME; + + [SetUp] + public void Init () + { + mockME = new DynamicMock (typeof (IMessageEnumerator)); + } + + [Test] + [ExpectedException(typeof(SystemMessageQueueException))] + public void RemoveCurrentThrowsConnectionException () + { + mockME.ExpectAndThrow ("RemoveCurrent", new ConnectionException (QueueReference.DEFAULT), null); + SystemMessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance); + me.RemoveCurrent (); + } + + [Test] + [ExpectedException(typeof(InvalidOperationException))] + public void RemoveCurrentThrowsMessageUnavailableException () + { + mockME.ExpectAndThrow ("RemoveCurrent", new MessageUnavailableException (), null); + SystemMessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance); + me.RemoveCurrent (); + } + + [Test] + [ExpectedException(typeof(SystemMessageQueueException))] + public void RemoveCurrentThrowsMonoMessagingException () + { + mockME.ExpectAndThrow ("RemoveCurrent", new MonoMessagingException (), null); + SystemMessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance); + me.RemoveCurrent (); + } + + [Test] + [ExpectedException(typeof(NotImplementedException))] + public void RemoveCurrentThrowsMessageNotImplemented () + { + mockME.ExpectAndThrow ("RemoveCurrent", new NotImplementedException (), null); + SystemMessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance); + me.RemoveCurrent (); + } + + public SystemMessageEnumerator CreateEnumerator (IMessageEnumerator ime) + { + Type[] types = { + typeof (IMessageEnumerator), typeof (SystemIMessageFormatter) + }; + + ConstructorInfo ci = typeof (SystemMessageEnumerator).GetConstructor ( + BindingFlags.NonPublic | BindingFlags.Instance, + Type.DefaultBinder, types, new ParameterModifier[0]); + + if (ci == null) + throw new Exception ("ConstructorInfo is null"); + + return (SystemMessageEnumerator) ci.Invoke (new object[] { ime, null }); + } + } +} diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageTest.cs index f0407173f96..40d847a0ee1 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/MessageTest.cs @@ -30,10 +30,11 @@ using NUnit.Framework; using NUnit.Mocks; using System; -//using System.Messaging; using System.Security; using System.Security.Permissions; using System.Reflection; +using SystemMessage = System.Messaging.Message; +using SystemAcknowledgeTypes = System.Messaging.AcknowledgeTypes; using Mono.Messaging; @@ -58,8 +59,8 @@ namespace MonoTests.Mono.Messaging.RabbitMQ { messageMock.Expect ("set_AcknowledgeType", AcknowledgeTypes.FullReachQueue); - System.Messaging.Message m = TestUtils.CreateMessage (iMessage); - m.AcknowledgeType = System.Messaging.AcknowledgeTypes.FullReachQueue; + SystemMessage m = TestUtils.CreateMessage (iMessage); + m.AcknowledgeType = SystemAcknowledgeTypes.FullReachQueue; messageMock.Verify (); } diff --git a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs index 7d65e557120..8b6b49a9617 100644 --- a/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs +++ b/mcs/class/Mono.Messaging.RabbitMQ/Test/Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs @@ -119,7 +119,7 @@ namespace MonoTests.Mono.Messaging.RabbitMQ Assert.AreEqual (t0.Iii, t1.Iii, "The int did not serialise/deserialise properly"); Assert.AreEqual (t0.Sss, t1.Sss, "The string did not serialise/deserialise properly"); - Assert.AreEqual (t0.Ttt, t1.Ttt, "The date did not serialise/deserialise properly"); + Assert.AreEqual (t0.Ttt.ToString (), t1.Ttt.ToString (), "The date did not serialise/deserialise properly"); mock1.Verify (); mock2.Verify (); |