* 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
RabbitMQ.Client \
Mono.Messaging \
System.Messaging \
-- Mono.Messaging.RabbitMQ \
System.ServiceProcess \
System.Drawing.Design \
System.Design \
Mono.Management \
Mono.Options \
Mono.Simd \
-- Mono.Tasklets
-
++ Mono.Tasklets \
++ Mono.Messaging.RabbitMQ
+
net_2_0_only_dirs := \
System.Web.Extensions_1.0 \
System.Web.Extensions.Design_1.0
[assembly: ComVisible (false)]
--[assembly: CLSCompliant (true)]
++[assembly: CLSCompliant (false)]
[assembly: AssemblyDelaySign (true)]
[assembly: AssemblyKeyFile("../msfinal.pub")]
++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
++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.
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;
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,
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;
}
// No-op (Queue are currently stateless)
}
-- public static void Delete (string realm, QueueReference qRef)
++ public static void Delete (QueueReference qRef)
{
ConnectionFactory cf = new ConnectionFactory ();
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()
{
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 ();
Mono.Messaging.RabbitMQ/BinaryMessageFormatterTest.cs
Mono.Messaging.RabbitMQ/XmlMessageFormatterTest.cs
Mono.Messaging.RabbitMQ/TestUtils.cs
--Mono.Messaging.RabbitMQ/MessageTest.cs
++Mono.Messaging.RabbitMQ/MessageTest.cs
++Mono.Messaging.RabbitMQ/MessageBaseTest.cs
++Mono.Messaging.RabbitMQ/MessageEnumeratorExceptionTest.cs
q.Send (m3);
q.Send (m4);
-- Message received = q.Receive ();
++ q.Receive ();
q.Purge ();
q.Receive (new TimeSpan (0, 0, 2));
}
q.Send (m1);
-- Message received = q.Receive ();
++ q.Receive ();
MessageQueue.Delete(@".\private$\delete-queue");
}
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);
}
}
}
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);
}
}
}
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 ());
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(),
++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.
--- /dev/null
--- /dev/null
++//
++// 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");
++ }
++ }
++}
--- /dev/null
--- /dev/null
++//\r
++// MessageEnumeratorTest.cs -\r
++// NUnit Test Cases for MessageEnumerator\r
++//\r
++// Author:\r
++// Michael Barker <mike@middlesoft.co.uk>\r
++//\r
++// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)\r
++//\r
++// Permission is hereby granted, free of charge, to any person obtaining\r
++// a copy of this software and associated documentation files (the\r
++// "Software"), to deal in the Software without restriction, including\r
++// without limitation the rights to use, copy, modify, merge, publish,\r
++// distribute, sublicense, and/or sell copies of the Software, and to\r
++// permit persons to whom the Software is furnished to do so, subject to\r
++// the following conditions:\r
++// \r
++// The above copyright notice and this permission notice shall be\r
++// included in all copies or substantial portions of the Software.\r
++// \r
++// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
++// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
++// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
++// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
++// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
++// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
++// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
++//\r
++using System;\r
++using System.Security;\r
++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;\r
++\r
++\r
++namespace MonoTests.Mono.Messaging {\r
++
++ [TestFixture]\r
++ 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 });
++ }
++ }
++}
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;
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 ();
}
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 ();
++2009-06-11 Michael Barker <mike@middlesoft.co.uk>
++
++ * Mono.Messaging_test.dll.sources: Moved MessageBaseTest.cs and
++ MessageEnumeratorTest.cs to Mono.Messaging.RabbitMQ.Test.
++
2009-05-23 Michael Barker <mike@middlesoft.co.uk>
* Mono.Messaging_test.dll.sources: Added MessageEnumeratorExceptionTest.cs
++2009-07-11 Michael Barker <mike@middlesoft.co.uk>
++
++ * MessagingProviderLocator.cs: Removed unessecary fields, made fields
++ readonly and some formatting changes.
++
2009-05-23 Michael Barker <mike@middlesoft.co.uk>
* IMessageEnumerator.cs: Added additional methods to support operations
public class MessagingProviderLocator
{
public static readonly TimeSpan InfiniteTimeout = TimeSpan.MaxValue;
++ private static readonly MessagingProviderLocator instance = new MessagingProviderLocator();
++ private readonly IMessagingProvider provider;
-- private static MessagingProviderLocator instance = new MessagingProviderLocator();
-- private readonly object syncObj = new object();
-- private IMessagingProvider provider = null;
private MessagingProviderLocator () {
string providerName = System.Environment.GetEnvironmentVariable("MONO_MESSAGING_PROVIDER");
provider = CreateProvider (providerName);
}
-- public static MessagingProviderLocator Instance { get { return instance; } }
++ public static MessagingProviderLocator Instance {
++ get { return instance; }
++ }
public static IMessagingProvider GetProvider ()
{
if (t == null)
throw new Exception ("Can't find class: " + className);
-- ConstructorInfo ci = t.GetConstructor (BindingFlags.Public |
-- BindingFlags.Instance,
++ ConstructorInfo ci = t.GetConstructor (BindingFlags.Public | BindingFlags.Instance,
Type.DefaultBinder,
new Type[0],
new ParameterModifier[0]);
--Mono.Messaging/MessageBaseTest.cs
--Mono.Messaging/MessageEnumeratorExceptionTest.cs
--Mono.Messaging/QueueReferenceTest.cs
++Mono.Messaging/QueueReferenceTest.cs
++2009-06-11 Michael Barker <mike@middlesoft.co.uk>
++
++ * MessageBaseTest.cs: Moved to Mono.Messaging.RabbitMQ.Test
++ * MessageEnumeratorTest.cs: Moved to Mono.Messaging.RabbitMQ.Test
++
2009-05-23 Michael Barker <mike@middlesoft.co.uk>
* MessageEnumeratorExceptionTest.cs: New
+++ /dev/null
--//
--// 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 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 (System.Messaging.AcknowledgeTypes.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 (System.Messaging.CryptographicProviderType.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 (System.Messaging.EncryptionAlgorithm.Rc2,
-- m.EncryptionAlgorithm,
-- "EncryptionAlgorithm should default to Rc2");
-- Assert.AreEqual (new byte[0], m.Extension,
-- "Extension should default to an empty array");
-- Assert.AreEqual (System.Messaging.HashAlgorithm.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 (System.Messaging.MessagePriority.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");
-- }
-- }
--}
+++ /dev/null
--//\r
--// MessageEnumeratorTest.cs -\r
--// NUnit Test Cases for MessageEnumerator\r
--//\r
--// Author:\r
--// Michael Barker <mike@middlesoft.co.uk>\r
--//\r
--// Copyright (C) 2004-2005 Novell, Inc (http://www.novell.com)\r
--//\r
--// Permission is hereby granted, free of charge, to any person obtaining\r
--// a copy of this software and associated documentation files (the\r
--// "Software"), to deal in the Software without restriction, including\r
--// without limitation the rights to use, copy, modify, merge, publish,\r
--// distribute, sublicense, and/or sell copies of the Software, and to\r
--// permit persons to whom the Software is furnished to do so, subject to\r
--// the following conditions:\r
--// \r
--// The above copyright notice and this permission notice shall be\r
--// included in all copies or substantial portions of the Software.\r
--// \r
--// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
--// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
--// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
--// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
--// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
--// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
--// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
--//\r
--using System;\r
--using System.Security;\r
--using System.Security.Permissions;
--using System.Reflection;
--
--using Mono.Messaging;
--
--using NUnit.Framework;
--using NUnit.Mocks;\r
--\r
--\r
--namespace MonoTests.Mono.Messaging {\r
--
-- [TestFixture]\r
-- public class MessageEnumeratorExceptionTest
-- {
-- private DynamicMock mockME;
--
-- [SetUp]
-- public void Init ()
-- {
-- mockME = new DynamicMock (typeof (IMessageEnumerator));
-- }
--
-- [Test]
-- [ExpectedException("System.Messaging.MessageQueueException")]
-- public void RemoveCurrentThrowsConnectionException ()
-- {
-- mockME.ExpectAndThrow ("RemoveCurrent", new ConnectionException (QueueReference.DEFAULT), null);
-- System.Messaging.MessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance);
-- me.RemoveCurrent ();
-- }
--
-- [Test]
-- [ExpectedException("System.InvalidOperationException")]
-- public void RemoveCurrentThrowsMessageUnavailableException ()
-- {
-- mockME.ExpectAndThrow ("RemoveCurrent", new MessageUnavailableException (), null);
-- System.Messaging.MessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance);
-- me.RemoveCurrent ();
-- }
--
-- [Test]
-- [ExpectedException("System.Messaging.MessageQueueException")]
-- public void RemoveCurrentThrowsMonoMessagingException ()
-- {
-- mockME.ExpectAndThrow ("RemoveCurrent", new MonoMessagingException (), null);
-- System.Messaging.MessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance);
-- me.RemoveCurrent ();
-- }
--
-- [Test]
-- [ExpectedException("System.NotImplementedException")]
-- public void RemoveCurrentThrowsMessageNotImplemented ()
-- {
-- mockME.ExpectAndThrow ("RemoveCurrent", new NotImplementedException (), null);
-- System.Messaging.MessageEnumerator me = CreateEnumerator ((IMessageEnumerator) mockME.MockInstance);
-- me.RemoveCurrent ();
-- }
--
-- public System.Messaging.MessageEnumerator CreateEnumerator (IMessageEnumerator ime)
-- {
-- Type[] types = {
-- typeof (IMessageEnumerator), typeof (System.Messaging.IMessageFormatter)
-- };
--
-- ConstructorInfo ci = typeof (System.Messaging.MessageEnumerator).GetConstructor (
-- BindingFlags.NonPublic | BindingFlags.Instance,
-- Type.DefaultBinder, types, new ParameterModifier[0]);
--
-- if (ci == null)
-- throw new Exception ("ConstructorInfo is null");
--
-- return (System.Messaging.MessageEnumerator) ci.Invoke (new object[] { ime, null });
-- }
-- }
--}
++2009-07-11 Michael Barker <mike@middlesoft.co.uk>
++
++ * MessageQueueException.cs: Removed MonoTODO.
++
2009-05-23 Michael Barker <mike@middlesoft.co.uk>
* MessageEnumerator.cs: Added calls to the delegate IMessageEnumerator
return "UnknownError";
}
-- [MonoTODO]
public override string Message
{
get { return base.Message; }