IPNetAddressTests.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using FsCheck;
  2. using FsCheck.Xunit;
  3. using MediaBrowser.Common.Net;
  4. using Xunit;
  5. namespace Jellyfin.Networking.Tests
  6. {
  7. public static class IPNetAddressTests
  8. {
  9. /// <summary>
  10. /// Checks IP address formats.
  11. /// </summary>
  12. /// <param name="address">IP Address.</param>
  13. [Theory]
  14. [InlineData("127.0.0.1")]
  15. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517")]
  16. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517/56")]
  17. [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517]")]
  18. [InlineData("fe80::7add:12ff:febb:c67b%16")]
  19. [InlineData("[fe80::7add:12ff:febb:c67b%16]:123")]
  20. [InlineData("fe80::7add:12ff:febb:c67b%16:123")]
  21. [InlineData("[fe80::7add:12ff:febb:c67b%16]")]
  22. [InlineData("192.168.1.2/255.255.255.0")]
  23. [InlineData("192.168.1.2/24")]
  24. public static void TryParse_ValidIPStrings_True(string address)
  25. => Assert.True(IPNetAddress.TryParse(address, out _));
  26. [Property]
  27. public static Property TryParse_IPv4Address_True(IPv4Address address)
  28. => IPNetAddress.TryParse(address.Item.ToString(), out _).ToProperty();
  29. [Property]
  30. public static Property TryParse_IPv6Address_True(IPv6Address address)
  31. => IPNetAddress.TryParse(address.Item.ToString(), out _).ToProperty();
  32. /// <summary>
  33. /// All should be invalid address strings.
  34. /// </summary>
  35. /// <param name="address">Invalid address strings.</param>
  36. [Theory]
  37. [InlineData("256.128.0.0.0.1")]
  38. [InlineData("127.0.0.1#")]
  39. [InlineData("localhost!")]
  40. [InlineData("fd23:184f:2029:0:3139:7386:67d7:d517:1231")]
  41. [InlineData("[fd23:184f:2029:0:3139:7386:67d7:d517:1231]")]
  42. public static void TryParse_InvalidAddressString_False(string address)
  43. => Assert.False(IPNetAddress.TryParse(address, out _));
  44. }
  45. }