예제 #1
0
        public void MinimumPasswordLength_RoundtripValue()
        {
            var section = new PasswordValidationSection();

            section.MinimumPasswordLength = 10;
            Assert.AreEqual(10, section.MinimumPasswordLength);
        }
예제 #2
0
        public void MinimumPasswordLength_BasicConfigFile_ValueIs12()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.BasicConfigFile);
            PasswordValidationSection.Refresh();
            var config = PasswordValidationSection.Get();

            Assert.AreEqual(12, config.MinimumPasswordLength);
        }
예제 #3
0
        public void NeedsSymbol_RoundTrip()
        {
            var section = new PasswordValidationSection();

            Assert.IsFalse(section.NeedsSymbol);
            section.NeedsSymbol = true;
            Assert.IsTrue(section.NeedsSymbol);
        }
예제 #4
0
        public void NeedsNumber_BasicConfigFile_ValueIsFalse()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.BasicConfigFile);
            PasswordValidationSection.Refresh();
            var config = PasswordValidationSection.Get();

            Assert.AreEqual(false, config.NeedsNumber);
        }
예제 #5
0
        public void NeedsNumber_DefaultsOnlyConfigFile_ValueIsTrue()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.DefaultsOnlyConfigFile);
            PasswordValidationSection.Refresh();
            var config = PasswordValidationSection.Get();

            Assert.AreEqual(true, config.NeedsNumber);
        }
        public void IsReadOnly_ConfigFile_IsTrue()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.BasicConfigFile);
            PasswordValidationSection.Refresh();
            var config     = PasswordValidationSection.Get();
            var collection = (ICollection <StandardWordList>)config.StandardWordLists;

            Assert.IsTrue(collection.IsReadOnly);
        }
예제 #7
0
        public void CustomWordLists_RoundTripValue()
        {
            var section    = new PasswordValidationSection();
            var collection = new CustomWordListCollection();

            Assert.AreNotSame(collection, section.CustomWordLists);
            section.CustomWordLists = collection;
            Assert.AreSame(collection, section.CustomWordLists);
        }
예제 #8
0
        public void NeedsLetter_RoundtripValue()
        {
            var section = new PasswordValidationSection();

            section.NeedsLetter = true;
            Assert.AreEqual(true, section.NeedsLetter);
            section.NeedsLetter = false;
            Assert.AreEqual(false, section.NeedsLetter);
        }
예제 #9
0
        public void Validate_ReversedPasswordInList_FailValidation()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.AllWordsConfig);
            PasswordValidationSection.Refresh();
            var validator = new Validator();
            var result    = validator.Validate("drowssaP");

            Assert.IsFalse(result);
        }
예제 #10
0
        public void Validate_AllWordsWithDoubledPassword_PassValidation()
        {
            ConfigFileHelper.SetConfigFile(ConfigFiles.AllWordsConfig);
            PasswordValidationSection.Refresh();
            var validator = new Validator();
            var result    = validator.Validate("Zachariah456@Zachariah456@");

            Assert.IsTrue(result);
        }
        private static PasswordValidationSection GetAllWordsPasswordValidationSection()
        {
            string allWordsConfig = ConfigFiles.AllWordsConfig;

            ConfigFileHelper.SetConfigFile(allWordsConfig);
            PasswordValidationSection.Refresh();
            var config = PasswordValidationSection.Get();

            return(config);
        }
예제 #12
0
        private static PasswordValidationSection GetDefaultOnlyConfig()
        {
            string defaultOnlyConfig = ConfigFiles.DefaultsOnlyConfigFile;

            ConfigFileHelper.SetConfigFile(defaultOnlyConfig);
            PasswordValidationSection.Refresh();
            var config = PasswordValidationSection.Get();

            return(config);
        }
예제 #13
0
        public void InterfaceCustomLists_RoundtripValue()
        {
            var section = new PasswordValidationSection();
            IPasswordValidationSettings iSection = section;
            var collection = new CustomWordListCollection();

            Assert.AreNotSame(collection, iSection.CustomWordLists);
            section.CustomWordLists = collection;
            Assert.AreSame(collection, iSection.CustomWordLists);
        }
예제 #14
0
        public void WordListProcessOptions_RoundtripValue()
        {
            var value   = new WordListProcessOptionsElement();
            var section = new PasswordValidationSection();

            section.WordListProcessOptions = value;

            // Through the regular getter
            Assert.AreSame(value, section.WordListProcessOptions);

            // Through the expicit interface getter
            var options = ((IPasswordValidationSettings)section).WordListProcessOptions;

            Assert.AreSame(value, options);
        }
예제 #15
0
 public void Get_NoConfigFile_ThrowsException()
 {
     ConfigFileHelper.RemoveConfigFile();
     PasswordValidationSection.Refresh();
     var section = PasswordValidationSection.Get();
 }
 /// <summary>
 /// Constructs an instance of the `Validator` class using the settings in
 /// the application's .config file.
 /// </summary>
 public Validator()
     : this(PasswordValidationSection.Get())
 {
 }