public void FindAsync_ShouldReturnCorrectUser() { // Setup dependencies var user = new User { UserName = "******" }; var userStore = new FakeUserStore() .WithUser(user).Build(); var passwordHasher = new FakePasswordHasher() .WithResult(PasswordVerificationResult.Success).Build(); // Call FindAsync var returnedUser = _userManager .WithUserStore(userStore.Object) .WithPasswordHasher(passwordHasher.Object).Build() .FindAsync("TestUser", "TestPassword").Result; Assert.AreEqual(user, returnedUser); }
public void Register_ShouldCreateUser() { // Setup dependencies var request = ConstructDefaultRegisterViewModel(); var userStore = new FakeUserStore() .WithAbilityToCreateUser().Build(); var passwordHasher = new FakePasswordHasher() .WithResult(PasswordVerificationResult.Success).Build(); var userManager = new MockUserManager(userStore.Object, passwordHasher.Object) .WithUserCreationResult(IdentityResult.Success); // Call register var result = _controller .WithUserManager(userManager).Build() .Register(request).Result; // Verify result result.AssertIsRedirect("Home", "Index"); }
public void FindAsync_ShouldReturnNullForIncorrectPassword() { // Setup dependencies var user = new User { UserName = "******" }; var userStore = new FakeUserStore() .WithUser(user).Build(); var passwordHasher = new FakePasswordHasher() .WithResult(PasswordVerificationResult.Failed).Build(); // Call FindAsync var returnedUser = _userManager .WithUserStore(userStore.Object) .WithPasswordHasher(passwordHasher.Object).Build() .FindAsync("TestUser", "TestPassword").Result; // Verify result Assert.IsNull(returnedUser); }
public void CreateAsync_ShouldCreateUser() { // Setup dependencies var userStore = new FakeUserStore() .WithAbilityToCreateUser().Build(); var passwordHasher = new FakePasswordHasher() .WithPasswordSalt("TestSalt").Build(); var user = new User { UserName = "******", PasswordHash = "TestPasswordHash" }; // Call CreateAsync var returnedUser = _userManager .WithUserStore(userStore.Object) .WithPasswordHasher(passwordHasher.Object).Build() .CreateAsync(user).Result; // Verify Result passwordHasher.Verify(ph => ph.HashPassword("TestPasswordHash"), Times.Once); userStore.Verify(us => us.CreateAsync(It.Is <User>(u => u.UserName == "TestUser")), Times.Once); }