diff options
Diffstat (limited to 'trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs')
-rw-r--r-- | trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs | 131 |
1 files changed, 0 insertions, 131 deletions
diff --git a/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs b/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs deleted file mode 100644 index 8e192e90f1..0000000000 --- a/trunk/qpid/wcf/test/Apache/Qpid/Test/Channel/Functional/MessagePropertiesTest.cs +++ /dev/null @@ -1,131 +0,0 @@ -/* -* 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; - using System.Collections.Generic; - using System.Reflection; - using System.Runtime.Serialization; - using System.ServiceModel; - using System.ServiceModel.Channels; - using Apache.Qpid.AmqpTypes; - using NUnit.Framework; - - [TestFixture] - public class MessagePropertiesTest - { - private const string RoutingKey = "routing_key"; - private const string SendToUri = "amqp:amq.direct?routingkey=" + RoutingKey; - - [Test] - public void DefaultAmqpProperties() - { - const string TestString = "Test Message"; - AmqpProperties messageProperties = new AmqpProperties(); - - this.SendMessage(TestString, messageProperties); - this.ReceiveMessage<string>(TestString, messageProperties); - } - - [Test] - public void NonDefaultAmqpProperties() - { - const string TestString = "Test Message"; - AmqpProperties messageProperties = this.CreateMessageProperties(); - - this.SendMessage(TestString, messageProperties); - this.ReceiveMessage<string>(TestString, messageProperties); - } - - private AmqpProperties CreateMessageProperties() - { - Dictionary<string, string> messageProperties = Util.GetProperties("..\\..\\MessageProperties.txt"); - - AmqpProperties amqpProperties = new AmqpProperties(); - amqpProperties.ContentType = (string)messageProperties["ContentType"]; - amqpProperties.Durable = Convert.ToBoolean((string)messageProperties["Durable"]); - amqpProperties.RoutingKey = (string)messageProperties["RoutingKey"]; - amqpProperties.TimeToLive = TimeSpan.Parse((string)messageProperties["TimeToLive"]); - - return amqpProperties; - } - - private void SendMessage(object objectToSend, AmqpProperties propertiesToSend) - { - ChannelFactory<IOutputChannel> channelFactory = - new ChannelFactory<IOutputChannel>(Util.GetBinding(), SendToUri); - IOutputChannel proxy = channelFactory.CreateChannel(); - proxy.Open(); - - Message toSend = Message.CreateMessage(MessageVersion.Default, string.Empty, objectToSend); - toSend.Properties["AmqpProperties"] = propertiesToSend; - proxy.Send(toSend); - - toSend.Close(); - proxy.Close(); - channelFactory.Close(); - } - - private void ReceiveMessage<TObjectType>(TObjectType objectToMatch, AmqpProperties expectedProperties) - { - Uri receiveFromUri = new Uri("amqp:message_queue"); - IChannelListener<IInputChannel> listener = Util.GetBinding().BuildChannelListener<IInputChannel>(receiveFromUri, new BindingParameterCollection()); - listener.Open(); - IInputChannel service = listener.AcceptChannel(TimeSpan.FromSeconds(10)); - service.Open(); - Message receivedMessage = service.Receive(TimeSpan.FromSeconds(10)); - try - { - TObjectType receivedObject = receivedMessage.GetBody<TObjectType>(); - Assert.True(receivedObject.Equals(objectToMatch), "Original and deserialized objects do not match"); - - AmqpProperties receivedProperties = (AmqpProperties)receivedMessage.Properties["AmqpProperties"]; - PropertyInfo[] propInfo = typeof(AmqpProperties).GetProperties(); - - for (int i = 0; i < propInfo.Length; i++) - { - string propertyName = propInfo[i].Name; - if (propertyName.Equals("RoutingKey", StringComparison.InvariantCultureIgnoreCase)) - { - Assert.AreEqual(RoutingKey, Convert.ToString(propInfo[i].GetValue(receivedProperties, null))); - } - else - { - Assert.AreEqual(Convert.ToString(propInfo[i].GetValue(expectedProperties, null)), Convert.ToString(propInfo[i].GetValue(receivedProperties, null))); - } - } - } - catch (NullReferenceException) - { - Assert.Fail("Message not received"); - } - catch (SerializationException) - { - Assert.Fail("Deserialized object not of correct type"); - } - finally - { - receivedMessage.Close(); - service.Close(); - listener.Close(); - } - } - } -} |