public void Can_Create_Members() { // ARRANGE int beforeMembersCount = repo.Members.Count(); MemberViewModel model = new MemberViewModel() { MemberId = 0, UserName = "******", Email = "*****@*****.**", FirstName = "NewFirstName", LastName = "NewLastName", Description = "", Address = "", Building = "", Floor = "", Office = "", Password = "******", PasswordConfirmation = "NewPassword" }; // ACT target.Create(model); // ASSERT Assert.IsTrue(beforeMembersCount < repo.Members.Count()); Assert.AreEqual(beforeMembersCount + 1, repo.Members.Count()); }
public void Check_UserId_Email_Edit_Uniqueness() { // ARRANGE Member toy = new Member() { MemberId = 0, UserName = "******", Email = "*****@*****.**", Password = new Password(), Profile = new Profile() { FirstName = "Toy", LastName = "Boy", } }; repo.SaveMember(toy); MemberViewModel model = new MemberViewModel( repo.Members.FirstOrDefault(m => m.MemberId == 3)); model.UserName = toy.UserName; model.Email = toy.Email; // ACT ViewResult expected = (ViewResult)target.Create(model); // ASSERT Assert.IsTrue(target.ModelState.Keys.Contains("UserAlreadyExist")); }
public void Passwords_Should_Match() { // ARRANGE MemberViewModel model = new MemberViewModel() { MemberId = 0, UserName = "******", Email = "*****@*****.**", FirstName = "NewFirstName", LastName = "NewLastName", Description = "", Address = "", Building = "", Floor = "", Office = "", Password = "******", PasswordConfirmation = "WrongPassword" }; // ACT target.Create(model); // ASSERT Assert.IsTrue(target.ModelState.Keys.Contains("PasswordConfirmation")); }
public void Check_UserId_Email_Create_Uniqueness() { // ARRANGE Member toy = new Member() { MemberId = 0, UserName = "******", Email = "*****@*****.**", Password = new Password(), Profile = new Profile() { FirstName = "Toy", LastName = "Boy", } }; repo.SaveMember(toy); MemberViewModel model = new MemberViewModel() { MemberId = 0, UserName = "******", Email = "*****@*****.**", FirstName = "NewFirstName", LastName = "NewLastName", Description = "", Address = "", Building = "", Floor = "", Office = "", Password = "******", PasswordConfirmation = "Password" }; // ACT target.Create(model); // ASSERT Assert.IsTrue(target.ModelState.Keys.Contains("UserAlreadyExist")); }
public void Can_Edit_Member() { // ARRANGE Member initialState = repo.Members.FirstOrDefault(p => p.MemberId == 3); string initialFirstName = initialState.Profile.FirstName; Member member = repo.Members.FirstOrDefault(p => p.MemberId == 3); MemberViewModel expected = new MemberViewModel(member); expected.FirstName = "EditedFirstName"; expected.LastName = "EditedLastName"; // ACT ActionResult result = target.Edit(expected); Member editedMember = repo.Members.FirstOrDefault(p => p.MemberId == 3); MemberViewModel actual = new MemberViewModel(editedMember); // ASSERT Assert.AreEqual(expected.MemberId, actual.MemberId); Assert.AreEqual(expected.FirstName, actual.FirstName); Assert.AreNotEqual(expected.LastName, actual.FirstName); }
public ActionResult Create(MemberViewModel model) { if (ModelState.IsValid) { Member member; if (UserExists(model.UserName, model.Email)) { ModelState.AddModelError("UserAlreadyExist", "Username or Email already in use."); ShowUserAlreadyExistAlert(); return View(); } // Check if passwords matches if (model.Password == model.PasswordConfirmation) { string salt = PasswordHelper.CreateSalt(); string hashedPassword = PasswordHelper.CreatePasswordHash(model.Password, salt); member = new Member() { MemberId = 0, MemberGuid = Guid.NewGuid(), UserName = model.UserName, Email = model.Email, Profile = new Profile() { FirstName = model.FirstName, LastName = model.LastName, Description = model.Description, Phone = model.Phone, Address = model.Address, Building = model.Building, Floor = model.Floor, Office = model.Office }, Password = new Password() { Salt = salt, Hash = hashedPassword } }; } else { ModelState.AddModelError("PasswordConfirmation", "Confirmation Password doesn't match your Password."); return View(); } try { repository.SaveMember(member); TempData["message"] = new Alert() { Class = "Success", Title = "New member created.", Description = string.Format("{0} {1}", model.LastName.ToUpper(), model.FirstName) }; } catch (Exception e) { TempData["message"] = new Alert(e); } return RedirectToAction("Index"); } else { return View("Create", model); } }
public ActionResult Edit(MemberViewModel model) { if (ModelState.IsValid) { try { Member member = repository.Members.FirstOrDefault(m => m.MemberId == model.MemberId); // If UserName or Email are changed // verify that we are not creating a duplicate member if (member.UserName != model.UserName || member.Email != model.Email) { if (UserExists(model.UserName, model.Email)) { ModelState.AddModelError("", "Username or Email already in use."); ShowUserAlreadyExistAlert(); return View(model); } } member.UserName = model.UserName; member.Email = model.Email; member.Profile.FirstName = model.FirstName; member.Profile.LastName = model.LastName; member.Profile.Phone = model.Phone; member.Profile.Description = model.Description; member.Profile.Address = model.Address; member.Profile.Building = model.Building; member.Profile.Floor = model.Floor; member.Profile.Office = model.Office; repository.SaveMember(member); TempData["message"] = new Alert() { Class = "Success", Title = "User successfully edited.", Description = string.Format("{0} {1} has been edited.", model.LastName.ToUpper(), model.FirstName) }; } catch (Exception e) { TempData["message"] = new Alert(e); return View(model); } } else { return View("Edit", model); } return RedirectToAction("Index"); }
public ViewResult Edit(int id) { MemberViewModel model = new MemberViewModel( repository.Members.FirstOrDefault(m => m.MemberId == id)); return View(model); }