public void ValidatorConfiguration_ReadEmailValidatorConfiguration_MultipleValidators()
        {
            Configuration     configuration     = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ValidatorsSection validatorsSection = configuration.GetSection("Enkoni.Validators.TestCase07") as ValidatorsSection;

            Assert.IsNotNull(validatorsSection);
            Assert.AreEqual(2, validatorsSection.EmailValidators.Count);
            Assert.IsNotNull(validatorsSection.EmailValidators[string.Empty]);
            Assert.IsNotNull(validatorsSection.EmailValidators["TestValidator"]);

            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].AllowComments);
            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].AllowIPAddresses);
            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].RequireTopLevelDomain);
            Assert.IsTrue(validatorsSection.EmailValidators["TestValidator"].AllowComments);
            Assert.IsTrue(validatorsSection.EmailValidators["TestValidator"].AllowIPAddresses);
            Assert.IsTrue(validatorsSection.EmailValidators["TestValidator"].RequireTopLevelDomain);

            Assert.AreEqual(1, validatorsSection.EmailValidators[string.Empty].IncludeDomains.Count);
            Assert.AreEqual(0, validatorsSection.EmailValidators[string.Empty].ExcludeDomains.Count);
            Assert.IsNotNull(validatorsSection.EmailValidators[string.Empty].IncludeDomains["gmail.com"]);
            Assert.AreEqual("gmail.com", validatorsSection.EmailValidators[string.Empty].IncludeDomains["gmail.com"].Pattern);
            Assert.IsNull(validatorsSection.EmailValidators[string.Empty].IncludeDomains["yahoo.com"]);

            Assert.AreEqual(0, validatorsSection.EmailValidators["TestValidator"].IncludeDomains.Count);
            Assert.AreEqual(1, validatorsSection.EmailValidators["TestValidator"].ExcludeDomains.Count);
            Assert.IsNotNull(validatorsSection.EmailValidators["TestValidator"].ExcludeDomains["yahoo.com"]);
            Assert.AreEqual("yahoo.com", validatorsSection.EmailValidators["TestValidator"].ExcludeDomains["yahoo.com"].Pattern);
        }
        public void ValidatorConfiguration_ValidatorsSection()
        {
            Configuration     configuration     = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ValidatorsSection validatorsSection = configuration.GetSection("Enkoni.Validators") as ValidatorsSection;

            Assert.IsNotNull(validatorsSection);
            Assert.IsNotNull(validatorsSection.DutchPhoneNumberValidators);
            Assert.AreEqual(2, validatorsSection.DutchPhoneNumberValidators.Count);
            Assert.IsNotNull(validatorsSection.EmailValidators);
            Assert.AreEqual(2, validatorsSection.EmailValidators.Count);
        }
        public void ValidatorConfiguration_ReadDutchPhoneNumberValidatorConfiguration_ClearAreaCodes()
        {
            Configuration     configuration     = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ValidatorsSection validatorsSection = configuration.GetSection("Enkoni.Validators.TestCase02") as ValidatorsSection;

            Assert.IsNotNull(validatorsSection);
            Assert.AreEqual(1, validatorsSection.DutchPhoneNumberValidators.Count);

            Assert.IsTrue(validatorsSection.DutchPhoneNumberValidators[string.Empty].AllowCountryCallingCode);
            Assert.IsFalse(validatorsSection.DutchPhoneNumberValidators[string.Empty].AllowCarrierPreselect);

            Assert.AreEqual(1, validatorsSection.DutchPhoneNumberValidators[string.Empty].AreaCodes.Count);
            Assert.IsNotNull(validatorsSection.DutchPhoneNumberValidators[string.Empty].AreaCodes["0123"]);
            Assert.AreEqual("0123", validatorsSection.DutchPhoneNumberValidators[string.Empty].AreaCodes["0123"].AreaCode);
        }
        public void ValidatorConfiguration_ReadEmailValidatorConfiguration_Default()
        {
            Configuration     configuration     = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            ValidatorsSection validatorsSection = configuration.GetSection("Enkoni.Validators.TestCase05") as ValidatorsSection;

            Assert.IsNotNull(validatorsSection);
            Assert.IsNotNull(validatorsSection.EmailValidators);
            Assert.AreEqual(2, validatorsSection.EmailValidators.Count);

            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].AllowComments);
            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].AllowIPAddresses);
            Assert.IsFalse(validatorsSection.EmailValidators[string.Empty].RequireTopLevelDomain);

            Assert.AreEqual(0, validatorsSection.EmailValidators[string.Empty].IncludeDomains.Count);
            Assert.AreEqual(0, validatorsSection.EmailValidators[string.Empty].ExcludeDomains.Count);
        }
Beispiel #5
0
            /// <summary>Reads the configuration and sets the configured values.</summary>
            /// <param name="sectionName">The name of the config section that must be read. Use <see langword="null"/> or <see cref="string.Empty"/> to use the default section name.</param>
            /// <returns>The values that were read from the configuration or <see langword="null"/> if there was no configuration.</returns>
            private static Dictionary <string, ConfiguredValuesContainer> ReadConfiguration(string sectionName)
            {
                if (string.IsNullOrEmpty(sectionName))
                {
                    sectionName = ValidatorsSection.DefaultSectionName;
                }

                ValidatorsSection validatorsSection = ConfigurationManager.GetSection(sectionName) as ValidatorsSection;

                if (validatorsSection == null || validatorsSection.EmailValidators.Count == 0)
                {
                    return(null);
                }

                Dictionary <string, ConfiguredValuesContainer> configuredValues = new Dictionary <string, ConfiguredValuesContainer>();

                foreach (EmailValidatorConfigElement validatorConfig in validatorsSection.EmailValidators.Values)
                {
                    ConfiguredValuesContainer valuesContainer = new ConfiguredValuesContainer {
                        AllowComments         = validatorConfig.AllowComments,
                        AllowIPAddresses      = validatorConfig.AllowIPAddresses,
                        RequireTopLevelDomain = validatorConfig.RequireTopLevelDomain
                    };

                    List <string> configuredIncludeDomains = new List <string>(validatorConfig.IncludeDomains.Count);
                    foreach (EmailDomainConfigElement domain in validatorConfig.IncludeDomains)
                    {
                        configuredIncludeDomains.Add(domain.Pattern);
                    }

                    List <string> configuredExcludeDomains = new List <string>(validatorConfig.ExcludeDomains.Count);
                    foreach (EmailDomainConfigElement domain in validatorConfig.ExcludeDomains)
                    {
                        configuredExcludeDomains.Add(domain.Pattern);
                    }

                    valuesContainer.IncludeDomains = string.Join(";", configuredIncludeDomains.ToArray());
                    valuesContainer.ExcludeDomains = string.Join(";", configuredExcludeDomains.ToArray());

                    configuredValues.Add(validatorConfig.Name, valuesContainer);
                }

                return(configuredValues);
            }
Beispiel #6
0
            /// <summary>Reads the configuration and sets the configured values.</summary>
            /// <param name="sectionName">The name of the config section that must be read. Use <see langword="null"/> or <see cref="string.Empty"/> to use the default section name.</param>
            /// <returns>The values that were read from the configuration or <see langword="null"/> if there was no configuration.</returns>
            private static Dictionary <string, ConfiguredValuesContainer> ReadConfiguration(string sectionName)
            {
                if (string.IsNullOrEmpty(sectionName))
                {
                    sectionName = ValidatorsSection.DefaultSectionName;
                }

                ValidatorsSection validatorsSection = ConfigurationManager.GetSection(sectionName) as ValidatorsSection;

                if (validatorsSection == null || validatorsSection.DutchPhoneNumberValidators.Count == 0)
                {
                    return(null);
                }

                Dictionary <string, ConfiguredValuesContainer> configuredValues = new Dictionary <string, ConfiguredValuesContainer>();

                foreach (DutchPhoneNumberValidatorConfigElement validatorConfig in validatorsSection.DutchPhoneNumberValidators.Values)
                {
                    List <string> configuredAreaCodes = new List <string>(validatorConfig.AreaCodes.Count);
                    foreach (DutchPhoneNumberAreaCodeConfigElement areaCode in validatorConfig.AreaCodes)
                    {
                        configuredAreaCodes.Add(areaCode.AreaCode.TrimStart('0'));
                    }

                    string[]             defaultAreaCodes = Resources.AreaCodes_NL.Split(';');
                    IEnumerable <string> difference       = defaultAreaCodes.Except(configuredAreaCodes);
                    difference.Concat(configuredAreaCodes.Except(defaultAreaCodes));

                    ConfiguredValuesContainer valuesContainer = new ConfiguredValuesContainer {
                        AllowCountryCallingCode = validatorConfig.AllowCountryCallingCode,
                        AllowCarrierPreselect   = validatorConfig.AllowCarrierPreselect,
                        AreaCodesOverridden     = difference.Any(),
                        AreaCodes = string.Join(";", configuredAreaCodes.ToArray())
                    };
                    configuredValues.Add(validatorConfig.Name, valuesContainer);
                }

                return(configuredValues);
            }