public DualCidrBlock Parse(string ip4CidrBlockString, string ip6CidrBlockString)
        {
            Ip4CidrBlock ip4CidrBlock = _ip4CidrBlockParser.Parse(ip4CidrBlockString);
            Ip6CidrBlock ip6CidrBlock = _ip6CidrBlockParser.Parse(ip6CidrBlockString);

            return(new DualCidrBlock(ip4CidrBlock, ip6CidrBlock));
        }
        public void TestWithoutErrors(string value, int cidr)
        {
            Ip6CidrBlock ip6CidrBlock = _parser.Parse(value);

            Assert.That(ip6CidrBlock.Value, Is.EqualTo(cidr));
            Assert.That(ip6CidrBlock.ErrorCount, Is.EqualTo(0));
        }
        public void Test(string value, int cidr, int errorCount)
        {
            Ip6CidrBlock ip6CidrBlock = _parser.Parse(value);

            Assert.That(ip6CidrBlock.Value, Is.EqualTo(errorCount == 0 ? cidr : (int?)null));
            Assert.That(ip6CidrBlock.ErrorCount, Is.EqualTo(errorCount));
        }
        public void TestWithErrors(string value, int cidr, string errorMessage)
        {
            Ip6CidrBlock ip6CidrBlock = _parser.Parse(value);

            Assert.That(ip6CidrBlock.Value, Is.Null);
            Assert.That(ip6CidrBlock.ErrorCount, Is.EqualTo(1));
            Assert.That(ip6CidrBlock.Errors[0].Message, Is.EqualTo(errorMessage));
        }
Ejemplo n.º 5
0
        //"ip6" ":" ip6-network [ ip6-cidr-length ]
        public Term Parse(string mechanism, Qualifier qualifier, string arguments)
        {
            string[] splits = arguments.Split(new[] { '/' }, StringSplitOptions.RemoveEmptyEntries);

            Ip6Addr ipAddress = _ip6AddrParser.Parse(splits.ElementAtOrDefault(0));

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

            return(new Ip6(mechanism, qualifier, ipAddress, cidrBlock));
        }
        public Ip6CidrBlock Parse(string cidrBlock)
        {
            if (string.IsNullOrEmpty(cidrBlock))
            {
                return(new Ip6CidrBlock(DefaultIp6CidrBlock));
            }

            if (_regex.IsMatch(cidrBlock))
            {
                return(new Ip6CidrBlock(int.Parse(cidrBlock)));
            }

            Ip6CidrBlock ip6CidrBlock = new Ip6CidrBlock(null);

            string errorMessage = string.Format(SpfParserResource.InvalidValueErrorMessage, "ipv6 cidr block", $"{cidrBlock}. Value must be in the range 0-128");

            ip6CidrBlock.AddError(new Error(ErrorType.Error, errorMessage));

            return(ip6CidrBlock);
        }