Пример #1
0
        public void Test(string value, FailureOptionType failureOptionType, int errorCount)
        {
            FailureOption tag = (FailureOption)_parser.Parse(string.Empty, value);

            Assert.That(tag.FailureOptionType, Is.EqualTo(failureOptionType));
            Assert.That(tag.ErrorCount, Is.EqualTo(errorCount));
        }
        public Tag Parse(string tag, string value)
        {
            FailureOptionType failureOptionType;
            switch (value?.ToLower())
            {
                case "0":
                    failureOptionType = FailureOptionType.Zero;
                    break;
                case "1":
                    failureOptionType = FailureOptionType.One;
                    break;
                case "d":
                    failureOptionType = FailureOptionType.D;
                    break;
                case "s":
                    failureOptionType = FailureOptionType.S;
                    break;
                default:
                    failureOptionType = FailureOptionType.Unknown;
                    break;
            }
            FailureOption failureOption = new FailureOption(tag, failureOptionType);

            if (failureOptionType == FailureOptionType.Unknown)
            {
                string errorMessage = string.Format(DmarcParserResource.InvalidValueErrorMessage, Tag, value);
                failureOption.AddError(new Error(ErrorType.Error, errorMessage));
            }

            return failureOption;
        }