AMQNET-620: Initialize ConnectionFactory properly with System.Uri overload
ConnectionFactory was not initialized properly with constructor that takes System.Uri as a parameter. Additional properties that were specified in broker uri (like username or password) were not applied on connection factory.
diff --git a/src/NMS.AMQP/NmsConnectionFactory.cs b/src/NMS.AMQP/NmsConnectionFactory.cs
index ecb238a..eff1e4f 100644
--- a/src/NMS.AMQP/NmsConnectionFactory.cs
+++ b/src/NMS.AMQP/NmsConnectionFactory.cs
@@ -58,7 +58,7 @@
public NmsConnectionFactory(Uri brokerUri)
{
- this.brokerUri = brokerUri;
+ BrokerUri = brokerUri;
}
private IdGenerator ClientIdGenerator
diff --git a/test/Apache-NMS-AMQP-Test/ConnectionFactoryTest.cs b/test/Apache-NMS-AMQP-Test/ConnectionFactoryTest.cs
index 229b62a..a86bb1e 100644
--- a/test/Apache-NMS-AMQP-Test/ConnectionFactoryTest.cs
+++ b/test/Apache-NMS-AMQP-Test/ConnectionFactoryTest.cs
@@ -66,10 +66,10 @@
}
[Test]
- public void TestSetPropertiesFromUri()
+ public void TestSetPropertiesFromStringUri()
{
string baseUri = "amqp://localhost:1234";
- string configured = baseUri +
+ string configuredUri = baseUri +
"?nms.username=user" +
"&nms.password=password" +
"&nms.clientId=client" +
@@ -79,7 +79,33 @@
"&nms.sendTimeout=1000" +
"&nms.localMessageExpiry=false";
- NmsConnectionFactory factory = new NmsConnectionFactory(configured);
+ NmsConnectionFactory factory = new NmsConnectionFactory(configuredUri);
+
+ Assert.AreEqual("user", factory.UserName);
+ Assert.AreEqual("password", factory.Password);
+ Assert.AreEqual("client", factory.ClientId);
+ Assert.AreEqual("ID:TEST", factory.ConnectionIdPrefix);
+ Assert.AreEqual("clientId", factory.ClientIdPrefix);
+ Assert.AreEqual(1000, factory.RequestTimeout);
+ Assert.AreEqual(1000, factory.SendTimeout);
+ Assert.IsFalse(factory.LocalMessageExpiry);
+ }
+
+ [Test]
+ public void TestSetPropertiesFromUri()
+ {
+ string baseUri = "amqp://localhost:1234";
+ string configuredUri = baseUri +
+ "?nms.username=user" +
+ "&nms.password=password" +
+ "&nms.clientId=client" +
+ "&nms.connectionIdPrefix=ID:TEST" +
+ "&nms.clientIDPrefix=clientId" +
+ "&nms.requestTimeout=1000" +
+ "&nms.sendTimeout=1000" +
+ "&nms.localMessageExpiry=false";
+
+ NmsConnectionFactory factory = new NmsConnectionFactory(new Uri(configuredUri));
Assert.AreEqual("user", factory.UserName);
Assert.AreEqual("password", factory.Password);