public void Given_SubmissionCorrect_When_EditPost_Then_ViewReturned(bool isAdmin)
        {
            // Arrange
            ExpectGetUserId();
            ExpectActingUserIsAdmin(isAdmin);
            ExpectGetRequester();
            var collection = new NameValueCollection {
                { "User.UserName", "*****@*****.**" }, { "User.FirstName", "new" }, { "User.LastName", "name" }
            };

            // Act
            var result = _sut.Edit(TestUserId, new FormCollection(collection));

            // Assert
            Context.AssertWasCalled(a => a.SaveChanges());
            var modifiedUser = Context.User.Single(u => u.Id == TestUserId);

            if (isAdmin)
            {
                _services.AssertWasCalled(a => a.SendEmail(Arg <string> .Is.Anything, Arg <List <string> > .Matches(b => b.Contains("*****@*****.**")), Arg <List <string> > .Is.Anything, Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything, Arg <bool> .Is.Anything));
                Assert.That(modifiedUser.UserName, Is.EqualTo("*****@*****.**"));
            }
            else
            {
                Assert.That(modifiedUser.UserName, Is.Not.EqualTo("*****@*****.**"));
            }
            var viewResult = AssertViewResultReturned(result, "Edit");

            Assert.AreEqual("Your account information has been saved", viewResult.ViewBag.StatusMessage);
        }
Ejemplo n.º 2
0
        public async Task Given_CorrectInformationProvided_When_ChangePassword_Then_SavesRedirectsAndEmails()
        {
            // Arrange
            var model = new ChangePasswordViewModel
            {
                OldPassword     = "******",
                NewPassword     = "******",
                ConfirmPassword = "******"
            };

            _userManager.Expect(a =>
                                a.ChangePasswordAsync(Arg <int> .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything))
            .Return(Task.FromResult(new SeIdentityResult()));
            UserIdentity.Expect(a => a.GetUserId(Arg <Controller> .Is.Anything)).Return(5);
            _recaptcha.Expect(a => a.ValidateRecaptcha(Arg <Controller> .Is.Anything)).Return(true);

            // Act
            var result = await _sut.ChangePasswordAsync(model);

            // Assert
            AssertViewResultReturned(result, "ChangePasswordSuccess");
            _services.AssertWasCalled(a => a.SendEmail(Arg <string> .Is.Anything, Arg <List <string> > .Is.Anything,
                                                       Arg <List <string> > .Is.Anything,
                                                       Arg <List <string> > .Is.Anything, Arg <string> .Is.Anything, Arg <string> .Is.Anything,
                                                       Arg <bool> .Is.Anything));
            _formsAuth.AssertWasCalled(a => a.SignOut());
            Context.AssertWasCalled(a => a.SaveChanges());
            _httpCache.AssertWasCalled(a => a.RemoveFromCache(Arg <string> .Is.Equal("MustChangePassword-5")));
        }
        public async Task Given_CredentialsIncorrect_When_LogonPost_Then_ErrorViewReturned()
        {
            // Arrange
            var logon = new LogOnViewModel {
                UserName = "******", Password = "******", RememberMe = false
            };

            UserManagerAttemptsLoginWithResult(false);
            ExpectGetRequester();
            _services.Expect(a => a.Wait(Arg <int> .Is.Anything));

            // Act
            var result = await _sut.LogOnAsync(logon, _returnUrl);

            // Assert
            AssertViewResultWithError(result, "Invalid credentials or the account is locked");
            _userManager.AssertWasNotCalled(a => a.LogOnAsync(Arg <string> .Is.Anything, Arg <bool> .Is.Anything));
            _services.AssertWasCalled(a => a.Wait(Arg <int> .Matches(b => b >= 500)));
        }