aboutsummaryrefslogtreecommitdiff
path: root/tests/Jellyfin.Networking.Tests/IPNetAddressTests.cs
blob: aa2dbc57a2e046c26be869c067ff631271d8ba8d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using FsCheck;
using FsCheck.Xunit;
using MediaBrowser.Common.Net;
using Xunit;

namespace Jellyfin.Networking.Tests
{
    public static class IPNetAddressTests
    {
        /// <summary>
        /// Checks IP address formats.
        /// </summary>
        /// <param name="address">IP Address.</param>
        [Theory]
        [InlineData("127.0.0.1")]
        [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]")]
        [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_ValidIPStrings_True(string address)
            => Assert.True(IPNetAddress.TryParse(address, out _));

        [Property]
        public static Property TryParse_IPv4Address_True(IPv4Address address)
            => IPNetAddress.TryParse(address.Item.ToString(), out _).ToProperty();

        [Property]
        public static Property TryParse_IPv6Address_True(IPv6Address address)
            => IPNetAddress.TryParse(address.Item.ToString(), out _).ToProperty();

        /// <summary>
        /// All should be invalid address strings.
        /// </summary>
        /// <param name="address">Invalid address strings.</param>
        [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(IPNetAddress.TryParse(address, out _));
    }
}