public void Test(string value, PolicyType policyType, int errorCount) { SubDomainPolicy tag = (SubDomainPolicy)_parser.Parse(string.Empty, value); Assert.That(tag.PolicyType, Is.EqualTo(policyType)); Assert.That(tag.ErrorCount, Is.EqualTo(errorCount)); }
public bool IsErrored(DmarcRecord record, out Error error) { SubDomainPolicy subDomainPolicy = record.Tags.OfType<SubDomainPolicy>().FirstOrDefault(); if (record.IsOrgDomain == false && subDomainPolicy != null && !subDomainPolicy.IsImplicit) { error = new Error(ErrorType.Warning, string.Format(DmarcRulesResource.SubDomainIneffectualErrorMessage, record.Domain)); return true; } error = null; return false; }
public bool IsErrored(DmarcRecord record, out Error error) { SubDomainPolicy subDomainPolicy = record.Tags.OfType <SubDomainPolicy>().FirstOrDefault(); OrganisationalDomain orgDomain = _organisationalDomainProvider.GetOrganisationalDomain(record.Domain) .GetAwaiter().GetResult(); if (orgDomain?.IsOrgDomain == false && subDomainPolicy != null && !subDomainPolicy.IsImplicit) { error = new Error(ErrorType.Warning, string.Format(DmarcRulesResource.SubDomainIneffectualErrorMessage, record.Domain)); return(true); } error = null; return(false); }
public bool IsErrored(DmarcRecord record, out Error error) { SubDomainPolicy subDomainPolicy = record.Tags.OfType <SubDomainPolicy>().FirstOrDefault(); if (IsValid(subDomainPolicy, record.IsOrgDomain)) { error = null; return(false); } string errorMessage = string.Format(DmarcRulesResource.SubdomainPolicyMustBeQuarantineOrRejectErrorMessage, subDomainPolicy?.PolicyType); error = new Error(ErrorType.Warning, errorMessage); return(true); }
public Tag Parse(string tag, string value) { PolicyType policyType; if (!value.TryParseExactEnum(out policyType)) { policyType = PolicyType.Unknown; } SubDomainPolicy policy = new SubDomainPolicy(tag, policyType); if (policyType == PolicyType.Unknown) { string errorMessage = string.Format(DmarcParserResource.InvalidValueErrorMessage, Tag, value); policy.AddError(new Error(ErrorType.Error, errorMessage)); } return(policy); }
public bool IsValid(SubDomainPolicy subDomainPolicy, bool isOrgDomain) { // Don't error on unknown because there will already be a parser error for this return(!isOrgDomain || subDomainPolicy == null || subDomainPolicy.PolicyType != PolicyType.None); }