Commit 5d1b8708 authored by Marc Gravell's avatar Marc Gravell

add some tests for #900

parent c3ea47bb
using System.Net.Sockets; using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using Xunit; using Xunit;
using Xunit.Abstractions; using Xunit.Abstractions;
...@@ -56,5 +59,46 @@ public void IPv6Connection() ...@@ -56,5 +59,46 @@ public void IPv6Connection()
server.Ping(); server.Ping();
} }
} }
[Theory]
[MemberData(nameof(ConnectByVariousEndpointsData))]
public void ConnectByVariousEndpoints(EndPoint ep, AddressFamily expectedFamily)
{
Assert.Equal(expectedFamily, ep.AddressFamily);
var config = new ConfigurationOptions
{
EndPoints = { ep }
};
if (ep.AddressFamily != AddressFamily.InterNetworkV6) // I don't have IPv6 servers
{
using (var conn = ConnectionMultiplexer.Connect(config))
{
var actual = conn.GetEndPoints().Single();
var server = conn.GetServer(actual);
server.Ping();
}
}
}
public static IEnumerable<object[]> ConnectByVariousEndpointsData()
{
yield return new object[] { new IPEndPoint(IPAddress.Loopback, 6379), AddressFamily.InterNetwork };
yield return new object[] { new IPEndPoint(IPAddress.IPv6Loopback, 6379), AddressFamily.InterNetworkV6 };
yield return new object[] { new DnsEndPoint("localhost", 6379), AddressFamily.Unspecified };
yield return new object[] { new DnsEndPoint("localhost", 6379, AddressFamily.InterNetwork), AddressFamily.InterNetwork };
yield return new object[] { new DnsEndPoint("localhost", 6379, AddressFamily.InterNetworkV6), AddressFamily.InterNetworkV6 };
yield return new object[] { ConfigurationOptions.Parse("127.0.0.1:6379").EndPoints.Single(), AddressFamily.InterNetwork };
yield return new object[] { ConfigurationOptions.Parse("127.0.0.1").EndPoints.Single(), AddressFamily.InterNetwork };
yield return new object[] { ConfigurationOptions.Parse("[::1]").EndPoints.Single(), AddressFamily.InterNetworkV6 };
yield return new object[] { ConfigurationOptions.Parse("[::1]:6379").EndPoints.Single(), AddressFamily.InterNetworkV6 };
}
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment