Example #1
0
        // ReSharper disable once ExcessiveIndentation
        public static IAddress[] StringToAddresses(string str)
        {
            var remoteAddresses = new List <IAddress>();

            foreach (var remoteAddress in str.Split(','))
            {
                if (SpecialAddress.TryParse(remoteAddress, out var specialAddress))
                {
                    remoteAddresses.Add(specialAddress);
                }
                else if (SingleIP.TryParse(remoteAddress, out SingleIP ip))
                {
                    remoteAddresses.Add(ip);
                }
                else if (IPRange.TryParse(remoteAddress, out var range))
                {
                    remoteAddresses.Add(range);
                }
                else if (NetworkAddress.TryParse(remoteAddress, out var network))
                {
                    remoteAddresses.Add(network);
                }
            }

            return(remoteAddresses.ToArray());
        }
        public void LocalSubnetValidParse()
        {
            var str     = "LocalSubnet";
            var address = SpecialAddress.Parse(str);

            Assert.AreEqual(new LocalSubnet(), address);
            Assert.AreEqual(str, address.ToString());
        }
        public void DNSServiceValidParse()
        {
            var str     = "DNS";
            var address = SpecialAddress.Parse(str);

            Assert.AreEqual(new DNSService(), address);
            Assert.AreEqual(str, address.ToString());
        }
        public void DefaultGatewayValidParse()
        {
            // ReSharper disable once StringLiteralTypo
            var str     = "Defaultgateway";
            var address = SpecialAddress.Parse(str);

            Assert.AreEqual(new DefaultGateway(), address);
            Assert.AreEqual(str, address.ToString());
        }
        public void SpecialAddressInvalidParses()
        {
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("");
            }
                                            );
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("SOME_UNKNOWN_STRING");
            }
                                            );
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("*");
            }
                                            );

            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("192.168.1.0");
            }
                                            );
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("2001:1::");
            }
                                            );

            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("192.168.2.0/24");
            }
                                            );
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("2001:1::/112");
            }
                                            );

            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("192.168.3.0-192.168.4.0");
            }
                                            );
            Assert.Throws <FormatException>(() =>
            {
                SpecialAddress.Parse("2001:2::-2001:3::");
            }
                                            );
        }