|
18 | 18 | using System; |
19 | 19 | using System.Collections.Generic; |
20 | 20 | using System.Linq; |
| 21 | +using System.Net; |
21 | 22 | using FluentAssertions; |
22 | 23 | using Moq; |
23 | 24 | using Neo4j.Driver.Internal; |
@@ -271,6 +272,37 @@ public void ShouldThrowExceptionIfReaderIsEmpty() |
271 | 272 | } |
272 | 273 | } |
273 | 274 |
|
| 275 | + public class BoltRoutingUriMethod |
| 276 | + { |
| 277 | + [Theory] |
| 278 | + [InlineData("localhost", "localhost", GraphDatabase.DefaultBoltPort)] |
| 279 | + [InlineData("localhost:9193", "localhost", 9193)] |
| 280 | + [InlineData("neo4j.com", "neo4j.com", GraphDatabase.DefaultBoltPort)] |
| 281 | + [InlineData("royal-server.com.uk", "royal-server.com.uk", GraphDatabase.DefaultBoltPort)] |
| 282 | + [InlineData("royal-server.com.uk:4546", "royal-server.com.uk", 4546)] |
| 283 | + // IPv4 |
| 284 | + [InlineData("127.0.0.1", "127.0.0.1", GraphDatabase.DefaultBoltPort)] |
| 285 | + [InlineData("8.8.8.8:8080", "8.8.8.8", 8080)] |
| 286 | + [InlineData("0.0.0.0", "0.0.0.0", GraphDatabase.DefaultBoltPort)] |
| 287 | + [InlineData("192.0.2.235:4329", "192.0.2.235", 4329)] |
| 288 | + [InlineData("172.31.255.255:255", "172.31.255.255", 255)] |
| 289 | + // IPv6 |
| 290 | + [InlineData("[1afc:0:a33:85a3::ff2f]", "[1afc:0:a33:85a3::ff2f]", GraphDatabase.DefaultBoltPort)] |
| 291 | + [InlineData("[::1]:1515", "[::1]", 1515)] |
| 292 | + [InlineData("[ff0a::101]:8989", "[ff0a::101]", 8989)] |
| 293 | + // IPv6 with zone id |
| 294 | + [InlineData("[1afc:0:a33:85a3::ff2f%eth1]", "[1afc:0:a33:85a3::ff2f]", GraphDatabase.DefaultBoltPort)] |
| 295 | + [InlineData("[::1%eth0]:3030", "[::1]", 3030)] |
| 296 | + [InlineData("[ff0a::101%8]:4040", "[ff0a::101]", 4040)] |
| 297 | + public void ShouldHaveLocalhost(string input, string host, int port) |
| 298 | + { |
| 299 | + var uri = ClusterDiscoveryManager.BoltRoutingUri(input); |
| 300 | + uri.Scheme.Should().Be("bolt+routing"); |
| 301 | + uri.Host.Should().Be(host); |
| 302 | + uri.Port.Should().Be(port); |
| 303 | + } |
| 304 | + } |
| 305 | + |
274 | 306 | internal static InitMessage InitMessage(IAuthToken auth = null) |
275 | 307 | { |
276 | 308 | auth = auth ?? AuthTokens.None; |
|
0 commit comments