public void Can_Log_In()
        {
            // Arrange
            LogOnViewModel model = new LogOnViewModel
            {
                Email = "*****@*****.**",
                Password = "******"
            };

            // Act
            ActionResult res = accountController.LogOn(model,"/Index");

            // Assert
            Assert.IsInstanceOf(typeof(RedirectResult), res);
            Assert.AreEqual("/Index", ((RedirectResult)res).Url);
        }
        public void Forgot_Password_Working()
        {
            // Arrange
            LogOnViewModel model = new LogOnViewModel
            {
                Email = "*****@*****.**",
                Password = "******"
            };

            // Act
            ActionResult res = accountController.ForgotPassword(model);

            // Assert
            mock.Verify(m => m.ForgotPassword(model.Email));
            Assert.IsInstanceOf(typeof(RedirectToRouteResult), res);
        }
        public void Forgot_Password_Not_Working_When_User_Dont_Exist()
        {
            // Arrange
            LogOnViewModel model = new LogOnViewModel
            {
                Email = "*****@*****.**",
                Password = "******"
            };

            // Act
            ActionResult res = accountController.ForgotPassword(model);

            // Assert
            Assert.IsInstanceOf(typeof(RedirectToRouteResult), res);
        }
        public void Can_Not_Log_In()
        {
            // Arrange
            LogOnViewModel model = new LogOnViewModel
            {
                Email = "*****@*****.**",
                Password = "******"
            };

            // Act
            ActionResult res = accountController.LogOn(model,"/Index");

            // Assert
            Assert.IsInstanceOf(typeof(ViewResult), res);
            Assert.IsFalse(((ViewResult)res).ViewData.ModelState.IsValid);
        }
 public ActionResult LogOn(LogOnViewModel model, string returnUrl)
 {
     if (ModelState.IsValid)
     {
         if (accountRepository.Authenticate(model.Email, model.Password))
         {
             return Redirect(String.IsNullOrEmpty(returnUrl) ? Url.Action("/"): returnUrl);
         }
         else
         {
             ModelState.AddModelError("", "Incorrect email or password");
             TempData["ForgotPassword"] = "******";
         }
     }
     return View();
 }
 public ActionResult ForgotPassword(LogOnViewModel model)
 {
     if (ModelState.IsValid)
     {
         User userExist = accountRepository.GetUserByEmail(model.Email);
         if (userExist != null)
         {
             accountRepository.ForgotPassword(model.Email);
             this.Success(string.Format("New password sent to {0}", model.Email));
         }
         else
         {
             this.Error(string.Format("Email not found: {0}", model.Email));
         }
     }
     return RedirectToAction("LogOn", "Account");
 }