public void TestPriorityConsumption()
{
IConnection conn = createConnection(true);
ISession receiverSession = conn.CreateSession();
ISession senderSession = conn.CreateSession();
IDestination queue = receiverSession.GetQueue(DESTINATION_NAME);
PurgeQueue(conn, queue);
IMessageConsumer consumer = receiverSession.CreateConsumer(queue);
Producer producer1 = new Producer(senderSession, queue, MSG_COUNT, MsgPriority.High);
Producer producer2 = new Producer(senderSession, queue, MSG_COUNT, MsgPriority.Low);
producer1.Start();
producer2.Start();
producer1.Join();
producer2.Join();
for(int i = 0; i < MSG_COUNT * 2; i++)
{
IMessage msg = consumer.Receive(TimeSpan.FromMilliseconds(1000));
Assert.IsNotNull(msg, "Message {0} was null", i);
Assert.AreEqual(i < MSG_COUNT ? MsgPriority.High : MsgPriority.Low, msg.NMSPriority,
"Message {0} priority was wrong", i);
}
}