Exemplo n.º 1
0
        public async Task Given_ValidDetails_When_ChangePasswordFromToken_Then_PasswordChanged()
        {
            // Arrange
            var    userId                  = 1;
            var    token                   = "asbcefghijklmnop";
            var    newPassword             = "******";
            string decryptedSecurityAnswer = "blah";

            _encryption.Expect(a => a.Decrypt(Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <int> .Is.Anything, Arg <string> .Is.Anything, out Arg <string> .Out(decryptedSecurityAnswer).Dummy)).Return(true);
            _userStore.Expect(a => a.FindByIdAsync(userId)).Return(Task.FromResult(new User {
                FirstName = "Bob", LastName = "Joseph", SecurityAnswer = "encryptedblah"
            }));
            _userStore.Expect(a => a.ChangePasswordFromTokenAsync(userId, token, newPassword)).Return(Task.FromResult(new IdentityResult()));

            // Act
            var result = await _sut.ChangePasswordFromTokenAsync(userId, token, newPassword);

            // Assert
            Assert.IsTrue(result.Succeeded, "Expected to Succeed but result was failure");
        }
        Given_PersonalInformationUsedInPassword_When_ChangePasswordFromToken_Then_PasswordChangeRejected(
            string wordReused)
        {
            // Arrange
            var userId                  = 1;
            var newPassword             = $"{wordReused}345";
            var token                   = "asbcefghijklmnop";
            var decryptedSecurityAnswer = "blah";

            _encryption.Expect(a => a.Decrypt(Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <int> .Is.Anything,
                                              Arg <string> .Is.Anything, out Arg <string> .Out(decryptedSecurityAnswer).Dummy)).Return(true);
            _userStore.Expect(a => a.FindByIdAsync(userId)).Return(Task.FromResult(new User
            {
                FirstName      = "Bob",
                LastName       = "Joseph",
                SecurityAnswer = "encryptedblah"
            }));
            // Act
            var result = await _sut.ChangePasswordFromTokenAsync(userId, token, newPassword);

            // Assert
            Assert.IsFalse(result.Succeeded);
            _userStore.AssertWasNotCalled(a => a.ChangePasswordFromTokenAsync(userId, token, newPassword));
        }