From 066db8ac7fcece0ab3420b6b6c03e420d22c7306 Mon Sep 17 00:00:00 2001 From: Shadowghost Date: Tue, 19 Jul 2022 21:28:04 +0200 Subject: Migrate NetworkManager and Tests to native .NET IP objects --- .../NetworkExtensionsTests.cs | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs (limited to 'tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs') diff --git a/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs b/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs new file mode 100644 index 0000000000..c81fdefe95 --- /dev/null +++ b/tests/Jellyfin.Networking.Tests/NetworkExtensionsTests.cs @@ -0,0 +1,53 @@ +using FsCheck; +using FsCheck.Xunit; +using MediaBrowser.Common.Net; +using Xunit; + +namespace Jellyfin.Networking.Tests +{ + public static class NetworkExtensionsTests + { + /// + /// Checks IP address formats. + /// + /// IP Address. + [Theory] + [InlineData("127.0.0.1")] + [InlineData("127.0.0.1:123")] + [InlineData("localhost")] + [InlineData("localhost:1345")] + [InlineData("www.google.co.uk")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517/56")] + [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517]:124")] + [InlineData("fe80::7add:12ff:febb:c67b%16")] + [InlineData("[fe80::7add:12ff:febb:c67b%16]:123")] + [InlineData("fe80::7add:12ff:febb:c67b%16:123")] + [InlineData("[fe80::7add:12ff:febb:c67b%16]")] + [InlineData("192.168.1.2/255.255.255.0")] + [InlineData("192.168.1.2/24")] + public static void TryParse_ValidHostStrings_True(string address) + => Assert.True(NetworkExtensions.TryParseHost(address, out _, true, true)); + + [Property] + public static Property TryParse_IPv4Address_True(IPv4Address address) + => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty(); + + [Property] + public static Property TryParse_IPv6Address_True(IPv6Address address) + => NetworkExtensions.TryParseHost(address.Item.ToString(), out _, true, true).ToProperty(); + + /// + /// All should be invalid address strings. + /// + /// Invalid address strings. + [Theory] + [InlineData("256.128.0.0.0.1")] + [InlineData("127.0.0.1#")] + [InlineData("localhost!")] + [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517:1231")] + [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517:1231]")] + public static void TryParse_InvalidAddressString_False(string address) + => Assert.False(NetworkExtensions.TryParseHost(address, out _, true, true)); + } +} -- cgit v1.2.3