コード例 #1
0
        public void Generate_ReturnsRandomlyGeneratedPassword()
        {
            IPasswordGenerator passwordGeneratorOne = new Implementation.PasswordGenerator();
            IPasswordGenerator passwordGeneratorTwo = new Implementation.PasswordGenerator();

            var passwordOne = passwordGeneratorOne.Generate();
            var passwordTwo = passwordGeneratorTwo.Generate();

            Assert.AreNotEqual(passwordOne, passwordTwo);
        }
コード例 #2
0
        public void ValidatePassword_ShouldAllowOneTimeAccessWithPassword()
        {
            //Arrange
            IPasswordGenerator passwordGenerator = new Implementation.PasswordGenerator();

            //Act
            IPasswordManager passwordManager = new Implementation.PasswordManager(passwordGenerator);
            var password      = passwordManager.CreatePassword("id");
            var passwordValid = passwordManager.IsPasswordCorrectAndValid("id", password);

            //Assert
            Assert.IsTrue(passwordValid);
            passwordValid = passwordManager.IsPasswordCorrectAndValid("id", password);
            Assert.IsFalse(passwordValid);
        }
コード例 #3
0
        public async Task CreatePassword_GivenUserIdMultipleTimes()
        {
            //Arrange
            IPasswordGenerator passwordGenerator = new Implementation.PasswordGenerator();

            //Act
            IPasswordManager passwordManager = new Implementation.PasswordManager(passwordGenerator);
            var passwordOne = passwordManager.CreatePassword("id");
            await Task.Delay(1);

            var passwordTwo   = passwordManager.CreatePassword("id");
            var passwordValid = passwordManager.IsPasswordCorrectAndValid("id", passwordOne);

            //Assert
            Assert.IsFalse(passwordValid);
            passwordValid = passwordManager.IsPasswordCorrectAndValid("id", passwordTwo);
            Assert.IsTrue(passwordValid);
        }