Example #1
0
        public Ip4Addr Parse(string ipAddressString)
        {
            Ip4Addr   ip4Addr = new Ip4Addr(ipAddressString);
            IPAddress ipAddress;

            if (IPAddress.TryParse(ipAddressString, out ipAddress))
            {
                if (ipAddress.AddressFamily != AddressFamily.InterNetwork)
                {
                    string errorMessage = string.Format(SpfParserResource.InvalidValueErrorMessage, "ipv4 address", ipAddressString);
                    string markdown     = string.Format(SpfParserMarkdownResource.InvalidValueErrorMessage, "ipv4 address", ipAddressString);

                    ip4Addr.AddError(new Error(Id, ErrorType.Error, errorMessage, markdown));
                }
            }
            else
            {
                string errorMessage = string.Format(SpfParserResource.InvalidValueErrorMessage, "ip address", ipAddressString);
                string markdown     = string.Format(SpfParserMarkdownResource.InvalidValueErrorMessage, "ip address", ipAddressString);

                ip4Addr.AddError(new Error(Id, ErrorType.Error, errorMessage, markdown));
            }

            return(ip4Addr);
        }
        public void Test(string ipString, int errorCount, string errorStringPattern)
        {
            Ip4Addr ip4Addr = _parser.Parse(ipString);

            Assert.That(ip4Addr.Value, Is.EqualTo(ipString));
            Assert.That(ip4Addr.ErrorCount, Is.EqualTo(errorCount));
            Assert.That((ip4Addr.Errors.FirstOrDefault()?.Message ?? string.Empty).Contains(errorStringPattern), Is.True);
        }
        //"ip4" ":" ip4-network [ ip4-cidr-length ]
        public Term Parse(string mechanism, Qualifier qualifier, string arguments)
        {
            string[] splits = arguments.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

            Ip4Addr ipAddress = _ip4AddrParser.Parse(splits.ElementAtOrDefault(0));

            Ip4CidrBlock cidrBlock = _cidrBlockParser.Parse(splits.ElementAtOrDefault(1));

            return(new Ip4(mechanism, qualifier, ipAddress, cidrBlock));
        }