public void HomeController_BeginLoginNoUsername() { HomeController homeController = new HomeController(_memeberShipService.Object); BeginLoginModel beginLoginModel = new BeginLoginModel(); ViewResult result = homeController.BeginLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("Login", result.ViewName); }
public void HomeController_BeginLoginExceptionThrown() { _memeberShipService.Setup(s => s.GenerateServerChallenge(It.IsAny<string>())).Throws(new Exception()); _memeberShipService.Setup(s => s.IsUserRegistered(It.IsAny<string>())).Returns(true); HomeController homeController = new HomeController(_memeberShipService.Object); BeginLoginModel beginLoginModel = new BeginLoginModel { UserName = "******", Password = "******"}; ViewResult result = homeController.BeginLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("Login", result.ViewName); }
public void HomeController_BeginLoginNoPassword() { HomeController homeController = new HomeController(_memeberShipService.Object); BeginLoginModel beginLoginModel = new BeginLoginModel { UserName = "******" }; ViewResult result = homeController.BeginLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("Login", result.ViewName); Assert.AreEqual("tester", ((BeginLoginModel)result.Model).UserName); }
public void HomeController_BeginLoginException() { _memeberShipService.Setup(s => s.IsUserRegistered(It.Is<string>(p => p == "tester"))).Returns(true); _memeberShipService.Setup(s => s.IsValidUserNameAndPassword(It.Is<string>(p => p == "tester"), It.Is<string>(p => p == "password"))).Returns(true).Verifiable(); _memeberShipService.Setup(s => s.GenerateServerChallenges(It.Is<string>(p => p == "tester"))) .Returns(new List<ServerChallenge>()); HomeController homeController = new HomeController(_memeberShipService.Object); BeginLoginModel beginLoginModel = new BeginLoginModel { UserName = "******", Password = "******" }; ViewResult result = homeController.BeginLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsFalse(homeController.ModelState.IsValid); Assert.AreEqual("Login", result.ViewName); }
public ActionResult BeginLogin(BeginLoginModel model) { if ((string.IsNullOrWhiteSpace(model.Password)) || !_memeberShipService.IsUserRegistered(model.UserName.Trim())) { // If we got this far, something failed, redisplay form ModelState.AddModelError("CustomError", "User has not been registered."); return View("Login", model); } if (!_memeberShipService.IsValidUserNameAndPassword(model.UserName.Trim(), model.Password.Trim())) { ModelState.AddModelError("CustomError", "User/Password is not invalid."); return View("Login", model); } try { List<ServerChallenge> serverChallenge = _memeberShipService.GenerateServerChallenges(model.UserName.Trim()); if(serverChallenge == null || serverChallenge.Count == 0) throw new Exception("No server challenges were generated."); var challenges = JsonConvert.SerializeObject(serverChallenge); CompleteLoginModel loginModel = new CompleteLoginModel { AppId = serverChallenge.First().appId, Version = serverChallenge.First().version, UserName = model.UserName.Trim(), Challenges = challenges }; return View("FinishLogin", loginModel); } catch (Exception e) { Console.WriteLine(e); ModelState.AddModelError("CustomError", e.Message); return View("Login", model); } }
public void HomeController_BeginLoginWithUsernameAndPassword() { _memeberShipService.Setup(s => s.IsUserRegistered(It.Is<string>(p => p == "tester"))).Returns(true); _memeberShipService.Setup(s => s.GenerateServerChallenge(It.Is<string>(p => p == "tester"))) .Returns(new List<ServerChallenge> { new ServerChallenge { appId = "unittests", challenge = "notrealchallenge", version = "U2F_V2", keyHandle = "notreallykeyhandle", } }).Verifiable(); _memeberShipService.Setup(s => s.IsValidUserNameAndPassword(It.Is<string>(p => p == "tester"), It.Is<string>(p => p == "password"))).Returns(true).Verifiable(); HomeController homeController = new HomeController(_memeberShipService.Object); BeginLoginModel beginLoginModel = new BeginLoginModel { UserName = "******", Password = "******" }; ViewResult result = homeController.BeginLogin(beginLoginModel) as ViewResult; Assert.IsNotNull(result); Assert.IsTrue(homeController.ModelState.IsValid); Assert.AreEqual("FinishLogin", result.ViewName); _memeberShipService.VerifyAll(); }