diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs index 4008c91e1..c9088862b 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ.Tests/Internals/ConnectionStringParserTests.cs @@ -60,4 +60,15 @@ public void virtual_host() ConnectionStringParser.Apply("virtualhost=weird", theFactory); theFactory.VirtualHost.ShouldBe("weird"); } + + [Theory] + [InlineData("host=foo;port=5673;")] + [InlineData("host=foo;port=5673")] + public void trailing_semicolon_is_optional(string connectionString) + { + ConnectionStringParser.Apply(connectionString, theFactory); + theFactory.HostName.ShouldBe("foo"); + theFactory.Port.ShouldBe(5673); + } + } \ No newline at end of file diff --git a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs index 849e986ba..21f068672 100644 --- a/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs +++ b/src/Transports/RabbitMQ/Wolverine.RabbitMQ/Internal/ConnectionStringParser.cs @@ -7,7 +7,7 @@ internal static class ConnectionStringParser { public static void Apply(string connectionString, ConnectionFactory factory) { - var values = connectionString.ToDelimitedArray(';'); + var values = connectionString.ToDelimitedArray(';').Where(x => x.IsNotEmpty()); foreach (var value in values) { var parts = value.ToDelimitedArray('=');