Merge pull request #53 from Havret/fix-msg-priority

AMQNET-634: Use 4 as default msg priority
diff --git a/src/NMS.AMQP/NmsMessageProducer.cs b/src/NMS.AMQP/NmsMessageProducer.cs
index 3e29c78..e1b40ba 100644
--- a/src/NMS.AMQP/NmsMessageProducer.cs
+++ b/src/NMS.AMQP/NmsMessageProducer.cs
@@ -34,7 +34,7 @@
         private MsgDeliveryMode deliveryMode = MsgDeliveryMode.Persistent;
         private TimeSpan timeToLive = NMSConstants.defaultTimeToLive;
         private TimeSpan requestTimeout;
-        private MsgPriority priority = NMSConstants.defaultPriority;
+        private MsgPriority priority = NMSConstants.defaultPriority - 1;
         private bool disableMessageId;
         private bool disableMessageTimestamp;
 
diff --git a/test/Apache-NMS-AMQP-Test/Integration/ProducerIntegrationTest.cs b/test/Apache-NMS-AMQP-Test/Integration/ProducerIntegrationTest.cs
index ac9f351..18e0b9e 100644
--- a/test/Apache-NMS-AMQP-Test/Integration/ProducerIntegrationTest.cs
+++ b/test/Apache-NMS-AMQP-Test/Integration/ProducerIntegrationTest.cs
@@ -399,6 +399,37 @@
                 testPeer.WaitForAllMatchersToComplete(1000);
             }
         }
+        
+        [Test, Timeout(20_000)]
+        public void TestMessagesAreProducedWithProperDefaultPriorityWhenNoPrioritySpecified()
+        {
+            using (TestAmqpPeer testPeer = new TestAmqpPeer())
+            {
+                IConnection connection = EstablishConnection(testPeer);
+                testPeer.ExpectBegin();
+                testPeer.ExpectSenderAttach();
+
+                ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
+                IQueue destination = session.GetQueue("myQueue");
+                IMessageProducer producer = session.CreateProducer(destination);
+
+                byte priority = 4;
+
+                testPeer.ExpectTransfer(m => Assert.AreEqual(priority, m.Header.Priority));
+                testPeer.ExpectClose();
+
+                ITextMessage message = session.CreateTextMessage();
+                Assert.AreEqual(MsgPriority.BelowNormal, message.NMSPriority);
+
+                producer.Send(message);
+
+                Assert.AreEqual((MsgPriority) priority, message.NMSPriority);
+
+                connection.Close();
+
+                testPeer.WaitForAllMatchersToComplete(1000);
+            }
+        }
 
         [Test, Timeout(20_000)]
         public void TestNonDefaultPriorityProducesMessagesWithPriorityFieldAndSetsNMSPriority()
diff --git a/test/Apache-NMS-AMQP-Test/NmsMessageProducerTest.cs b/test/Apache-NMS-AMQP-Test/NmsMessageProducerTest.cs
index f0f139b..4c83e7a 100644
--- a/test/Apache-NMS-AMQP-Test/NmsMessageProducerTest.cs
+++ b/test/Apache-NMS-AMQP-Test/NmsMessageProducerTest.cs
@@ -77,7 +77,7 @@
         public void TestPriorityConfiguration()
         {
             IMessageProducer producer = session.CreateProducer(null);
-            Assert.AreEqual(NMSConstants.defaultPriority, producer.Priority);
+            Assert.AreEqual(MsgPriority.BelowNormal, producer.Priority);
             producer.Priority = MsgPriority.Highest;
             Assert.AreEqual(MsgPriority.Highest, producer.Priority);
         }