public void Setup() { _config = new Mock <IConfiguration>(); _user = new Mock <IRepository <Authen> >(); _auth1 = new Mock <IAuthRepo>(); _controller = new AuthApiController(_config.Object, _user.Object, _auth1.Object); }
public async Task TestSignUpAnonymous() { // Arrange var userManager = new Mock <StubUserManager>(); var signInManager = new Mock <StubSignInManager>(); var controller = new AuthApiController(userManager.Object, signInManager.Object); // Act var result = await controller.SignUpAnonymous(); // Assert Assert.IsType <OkResult>(result); signInManager.Verify(s => s.SignOutAsync(), Times.Once()); signInManager.Verify(s => s.PasswordSignInAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>(), false, false) , Times.Once); userManager.Verify(u => u.CreateAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once); VerifyLoggers(signInManager, userManager); signInManager.VerifyNoOtherCalls(); userManager.VerifyNoOtherCalls(); }
public async Task TestSignUpError() { // Arrange var signInManager = new Mock <StubSignInManager>(); var userManager = new Mock <StubUserManager>(); var models = new[] { AuthData.LoginWithUname, AuthData.LoginWithEmail , AuthData.BadLoginNoPw, AuthData.BadLoginOnlyPw }; userManager.Setup(u => u.CreateAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>())) .ReturnsAsync(IdentityResult.Failed()); var controller = new AuthApiController(userManager.Object, signInManager.Object); // Act var unauthorized = await controller.SignUp(AuthData.LoginAllProps); var badResults = Task .WhenAll(from m in models select controller.SignUp(m)).Result; // Assert Assert.IsType <UnauthorizedObjectResult>(unauthorized); Assert.All(badResults, a => Assert.IsType <BadRequestResult>(a)); signInManager.Verify(s => s.SignOutAsync() , Times.Exactly(models.Length + 1)); userManager.Verify(u => u.CreateAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once); VerifyLoggers(signInManager, userManager); signInManager.VerifyNoOtherCalls(); userManager.VerifyNoOtherCalls(); }
public async Task TestSignUp() { // Arrange var signInManager = new Mock <StubSignInManager>(); var userManager = new Mock <StubUserManager>(); var userModel = AuthData.LoginAllProps; userManager.Setup(u => u.CreateAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>())) .ReturnsAsync(IdentityResult.Success); var controller = new AuthApiController(userManager.Object, signInManager.Object); // Act var result = await controller.SignUp(userModel); // Assert Assert.IsType <OkResult>(result); signInManager.Verify(s => s.SignOutAsync(), Times.Once); signInManager.Verify(s => s.PasswordSignInAsync (It.IsAny <ApplicationUser>(), userModel.Password, true, false), Times.Once); userManager.Verify(u => u.CreateAsync (It.IsAny <ApplicationUser>(), It.IsAny <string>()), Times.Once); VerifyLoggers(signInManager, userManager); signInManager.VerifyNoOtherCalls(); userManager.VerifyNoOtherCalls(); }
public AuthApiControllerTest() { var userService = new Mock <IUserService>(); var tokenFactory = new Mock <ITokenGenerator>(); _authController = new AuthApiController(userService.Object, tokenFactory.Object); }
public async Task TestLoginError() { // Arrange var userManager = new Mock <StubUserManager>(); var signInManager = new Mock <StubSignInManager>(); var user = new ApplicationUser(); var model = AuthData.LoginWithUname; var model2 = AuthData.LoginWithEmail; var invalidModels = new[] { AuthData.BadLoginNoPw, AuthData.BadLoginOnlyPw }; userManager.Setup(u => u.FindByNameAsync(model.Username)) .Returns(Task.FromResult <ApplicationUser>(null)); userManager.Setup(u => u.FindByEmailAsync(model2.Email)) .ReturnsAsync(user); signInManager.Setup(s => s.PasswordSignInAsync (user, model2.Password, true, false)) .ReturnsAsync(SignInResult.Failed); var controller = new AuthApiController(userManager.Object , signInManager.Object); // Act var unAuth = new [] { await controller.Login(model) , await controller.Login(model2) }; var badReq = new [] { await controller.Login(invalidModels[0]) , await controller.Login(invalidModels[1]) }; // Assert Assert.All(unAuth, r => Assert.IsType <UnauthorizedResult>(r)); Assert.All(badReq, r => Assert.IsType <BadRequestResult>(r)); userManager.Verify(u => u.FindByNameAsync(model.Username), Times.Once); userManager.Verify(u => u.FindByEmailAsync(model2.Email), Times.Once); signInManager.Verify(s => s.SignOutAsync(), Times.Exactly(4)); signInManager.Verify(s => s.PasswordSignInAsync (user, model2.Password, true, false), Times.Once); VerifyLoggers(signInManager, userManager); userManager.VerifyNoOtherCalls(); signInManager.VerifyNoOtherCalls(); }
public async Task TestLogout() { // Arrange var signInManager = new Mock <StubSignInManager>(); var controller = new AuthApiController( new Mock <StubUserManager>().Object , signInManager.Object ); // Act var result = await controller.Logout(); // Assert Assert.IsType <OkResult>(result); signInManager.Verify(s => s.SignOutAsync(), Times.Once); VerifyLoggers(signInManager); signInManager.VerifyNoOtherCalls(); }
public async Task TestLogin() { // Arrange var userManager = new Mock <StubUserManager>(); var signinManager = new Mock <StubSignInManager>(); var user = new ApplicationUser(); var models = new [] { AuthData.LoginWithUname, AuthData.LoginWithEmail }; var pws = new[] { models[0].Password, models[1].Password }; userManager.Setup(u => u.FindByEmailAsync(models[1].Email)) .ReturnsAsync(user); userManager.Setup(u => u.FindByNameAsync(models[0].Username)) .ReturnsAsync(user); signinManager.Setup (s => s.PasswordSignInAsync(user, It.IsIn(pws), true, false)) .ReturnsAsync(SignInResult.Success); var controller = new AuthApiController( userManager.Object, signinManager.Object); // Act var result = await controller.Login(models[0]); await controller.Login(models[1]); // Assert Assert.IsType <OkResult>(result); signinManager.Verify(s => s.SignOutAsync(), Times.Exactly(2)); signinManager.Verify (s => s.PasswordSignInAsync(user, It.IsIn(pws), true, false) , Times.Exactly(2)); userManager.Verify(u => u.FindByEmailAsync(models[1].Email), Times.Once); userManager.Verify(u => u.FindByNameAsync(models[0].Username), Times.Once); VerifyLoggers(signinManager, userManager); userManager.VerifyNoOtherCalls(); signinManager.VerifyNoOtherCalls(); }