public void SendsEmailWithPasswordResetUrl()
            {
                const string resetUrl = "https://example.org/?Controller=Users&Action=ResetPassword&username=somebody&token=confirmation";
                var          user     = new User
                {
                    EmailAddress       = "*****@*****.**",
                    Username           = "******",
                    PasswordResetToken = "confirmation",
                    PasswordResetTokenExpirationDate = DateTime.UtcNow.AddDays(1)
                };
                var controller = new TestableUsersController();

                controller.MockMessageService
                .Setup(s => s.SendPasswordResetInstructions(user, resetUrl));
                controller.MockUserService
                .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                .Returns(user);
                var model = new ForgotPasswordViewModel {
                    Email = "user"
                };

                var result = controller.ForgotPassword(model) as RedirectToRouteResult;

                Assert.NotNull(result);
                controller.MockMessageService
                .Verify(s => s.SendPasswordResetInstructions(user, resetUrl));
            }
            public void ReturnsSameViewIfTokenGenerationFails()
            {
                var controller = new TestableUsersController();

                controller.MockUserService
                .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                .Returns((User)null);

                var model = new ForgotPasswordViewModel {
                    Email = "user"
                };

                var result = controller.ForgotPassword(model) as ViewResult;

                Assert.NotNull(result);
                Assert.IsNotType(typeof(RedirectResult), result);
            }
            public void RedirectsAfterGeneratingToken()
            {
                var user = new User {
                    EmailAddress = "*****@*****.**", Username = "******"
                };
                var controller = new TestableUsersController();

                controller.MockUserService
                .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                .Returns(user)
                .Verifiable();
                var model = new ForgotPasswordViewModel {
                    Email = "user"
                };

                var result = controller.ForgotPassword(model) as RedirectToRouteResult;

                Assert.NotNull(result);
                controller.MockUserService
                .Verify(s => s.GeneratePasswordResetToken("user", 1440));
            }
Esempio n. 4
0
            public void ReturnsSameViewIfTokenGenerationFails()
            {
                var controller = new TestableUsersController();
                controller.MockUserService
                          .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                          .Returns((User)null);
                
                var model = new ForgotPasswordViewModel { Email = "user" };
                
                var result = controller.ForgotPassword(model) as ViewResult;

                Assert.NotNull(result);
                Assert.IsNotType(typeof(RedirectResult), result);
            }
Esempio n. 5
0
            public void RedirectsAfterGeneratingToken()
            {
                var user = new User { EmailAddress = "*****@*****.**", Username = "******" };
                var controller = new TestableUsersController();
                controller.MockUserService
                          .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                          .Returns(user)
                          .Verifiable();
                var model = new ForgotPasswordViewModel { Email = "user" };

                var result = controller.ForgotPassword(model) as RedirectToRouteResult;

                Assert.NotNull(result);
                controller.MockUserService
                          .Verify(s => s.GeneratePasswordResetToken("user", 1440));
            }
Esempio n. 6
0
            public void SendsEmailWithPasswordResetUrl()
            {
                const string resetUrl = "https://example.org/?Controller=Users&Action=ResetPassword&username=somebody&token=confirmation";
                var user = new User
                    {
                        EmailAddress = "*****@*****.**",
                        Username = "******",
                        PasswordResetToken = "confirmation",
                        PasswordResetTokenExpirationDate = DateTime.UtcNow.AddDays(1)
                    };
                var controller = new TestableUsersController();
                controller.MockMessageService
                          .Setup(s => s.SendPasswordResetInstructions(user, resetUrl));
                controller.MockUserService
                          .Setup(s => s.GeneratePasswordResetToken("user", 1440))
                          .Returns(user);
                var model = new ForgotPasswordViewModel { Email = "user" };

                var result = controller.ForgotPassword(model) as RedirectToRouteResult;

                Assert.NotNull(result);
                controller.MockMessageService
                          .Verify(s => s.SendPasswordResetInstructions(user, resetUrl));
            }