Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }