public async Task Login_User_Wrong_UserName() { var connection = TestHelper.GetConnection(); var options = TestHelper.GetMockDBOptions(connection); try { using (var context = new AppcentTodoContext(options)) { TestHelper.EnsureCreated(context); var service = new UserLoginCommandHandler(context, TestHelper.GetAppSettings()); var command = new UserLoginCommand(); command.Data = new UserLoginRequest { Password = "******", UserName = "******" }; var result = await service.Execute(command); Assert.False(result.Result.IsSuccess); Assert.Equal("Incorrect username or password", result.Result.Error.ErrorText); } } finally { connection.Close(); } }
public async Task Login_User() { var connection = TestHelper.GetConnection(); var options = TestHelper.GetMockDBOptions(connection); try { using (var context = new AppcentTodoContext(options)) { TestHelper.EnsureCreated(context); var service = new UserLoginCommandHandler(context, TestHelper.GetAppSettings()); var command = new UserLoginCommand(); command.Data = new UserLoginRequest { Password = "******", UserName = "******" }; var result = await service.Execute(command); if (result.GetType().IsAssignableTo(typeof(UserLoginResponse))) { var res = (UserLoginResponse)result; Assert.NotEqual <string>(res.Token, string.Empty); } Assert.True(result.Result.IsSuccess); } } finally { connection.Close(); } }
public UserLoginCommandHandlerTests() { _userService = Substitute.For <IUserService>(); _tokenService = Substitute.For <ITokenService>(); _unitOfWork = Substitute.For <IUnitOfWork>(); _plexApi = Substitute.For <IPlexApi>(); var logger = Substitute.For <ILogger <UserLoginCommandHandler> >(); _underTest = new UserLoginCommandHandler(_userService, _tokenService, _unitOfWork, _plexApi, logger); }
public async Task LoginUser_ValidUser(SignInResult expectedResult, UserLoginResponse expectedUserLoginResponse) { //Arrange expectedResult.SetProperty(s => s.Succeeded, true); _userLoginProviderMock.Setup(s => s.UserSignInAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(expectedResult); _userLoginProviderMock.Setup(s => s.TokenGenerator(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <double>())).ReturnsAsync(expectedUserLoginResponse); var command = new UserLoginCommand("*****@*****.**", "password123"); _sut = new UserLoginCommandHandler(_userLoginProviderMock.Object, _mediatorHandlerMock.Object, _userProviderMock.Object); //Act var response = await _sut.Handle(command, CancellationToken.None); //Assert response.Payload.Should().NotBeNull(); response.ValidationResult.Should().BeNull(); response.Payload.UserToken.Should().BeEquivalentTo(expectedUserLoginResponse.UserToken); }
public async Task LoginUser_InvalidUserOrPassword(SignInResult expectedResult) { //Arrange expectedResult.SetProperty(s => s.Succeeded, false); var validationResult = new ValidationResult(); validationResult.Errors.Add(CreateValidationFailure(null, "User or password invalid!")); _userLoginProviderMock.Setup(s => s.UserSignInAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(expectedResult); var command = new UserLoginCommand("*****@*****.**", "password123"); _sut = new UserLoginCommandHandler(_userLoginProviderMock.Object, _mediatorHandlerMock.Object, _userProviderMock.Object); //Act var response = await _sut.Handle(command, CancellationToken.None); //Assert response.Payload.Should().BeNull(); response.ValidationResult.Errors.Should().HaveCount(1); response.ValidationResult.Errors.Select(s => s.ErrorMessage).Should().Contain(validationResult.Errors.Select(s => s.ErrorMessage)); }
public async Task LoginUser_InvalidCommand() { //Arrange var expectedResult = new ValidationResult(); expectedResult.Errors.Add(CreateValidationFailure("-1005", "Invalid format of the email")); expectedResult.Errors.Add(CreateValidationFailure("-1003", "Email is required")); expectedResult.Errors.Add(CreateValidationFailure("-1004", "Password is required")); var command = new UserLoginCommand(string.Empty, string.Empty); _sut = new UserLoginCommandHandler(_userLoginProviderMock.Object, _mediatorHandlerMock.Object, _userProviderMock.Object); //Act var response = await _sut.Handle(command, CancellationToken.None); //Assert response.Payload.Should().BeNull(); response.ValidationResult.Errors.Should().HaveCount(3); response.ValidationResult.Errors.Select(s => s.ErrorCode).Should().Contain(expectedResult.Errors.Select(s => s.ErrorCode)); response.ValidationResult.Errors.Select(s => s.ErrorMessage).Should().Contain(expectedResult.Errors.Select(s => s.ErrorMessage)); }