public void SendReceiveNMSProperties(
[Values(MsgDeliveryMode.Persistent, MsgDeliveryMode.NonPersistent)]
MsgDeliveryMode deliveryMode)
{
using(IConnection connection = CreateConnection(GetTestClientId()))
{
connection.Start();
using(ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge))
{
IDestination destination = SessionUtil.GetDestination(session, DESTINATION_NAME);
using(IMessageConsumer consumer = session.CreateConsumer(destination))
using(IMessageProducer producer = session.CreateProducer(destination))
{
producer.Priority = priority;
producer.DeliveryMode = deliveryMode;
ITextMessage request = session.CreateTextMessage(expectedText);
// Set the headers
request.NMSCorrelationID = correlationID;
request.NMSType = type;
request.Properties["NMSXGroupID"] = groupID;
request.Properties["NMSXGroupSeq"] = groupSeq;
producer.Send(request);
ITextMessage message = consumer.Receive(receiveTimeout) as ITextMessage;
Assert.IsNotNull(message, "Did not receive an ITextMessage!");
Assert.AreEqual(expectedText, message.Text, "Message text does not match.");
// compare standard NMS headers
Assert.AreEqual(correlationID, message.NMSCorrelationID, "NMSCorrelationID does not match");
Assert.AreEqual(deliveryMode, message.NMSDeliveryMode, "NMSDeliveryMode does not match");
Assert.AreEqual(priority, message.NMSPriority, "NMSPriority does not match");
Assert.AreEqual(type, message.NMSType, "NMSType does not match");
Assert.AreEqual(groupID, message.Properties["NMSXGroupID"], "NMSXGroupID does not match");
Assert.AreEqual(groupSeq, message.Properties["NMSXGroupSeq"], "NMSXGroupSeq does not match");
}
}
}
}