public async void ExecuteWithCorrectUserTest()
        {
            //Arrange
            Domain.Users.User usRet = new Domain.Users.User("hola", "password", true)
            {
                Id = "id"
            };

            var mockUserRepository = new Mock <IUserRepository>();
            var mockJwtService     = new Mock <IJwtService>();
            var mockStorage        = new Mock <IStorage>();
            var mockUserService    = new Mock <IUserService>();


            mockUserRepository.Setup(b => b.CheckUser(It.IsAny <Domain.Users.User>())).ReturnsAsync(usRet);
            mockJwtService.Setup(b => b.GenerateJWT("hola", "id", 1, 1, 1)).Returns(Task.FromResult("jwt"));

            LoginUserUseCase useCase = new LoginUserUseCase(mockUserRepository.Object, mockJwtService.Object, mockUserService.Object, mockStorage.Object);

            //Act
            var result = await useCase.Execute("hola", "password");

            //Assert
            Assert.IsType <UserOutput>(result);
        }
示例#2
0
        public async Task Handle_ValidCredentials_ShouldSucceed()
        {
            _mockUserReposytory.Setup(repo => repo.CheckPassword(It.IsAny <User>(), It.IsAny <string>())).ReturnsAsync(true);

            var useCase  = new LoginUserUseCase(_mockUserReposytory.Object, _mockJwtFactory.Object, _mockTokenFactory.Object);
            var responce = await useCase.Handle(new LoginRequest("username", "password", "127.0.0.1"), _mockOutputPort.Object);

            Assert.True(responce);
        }
示例#3
0
        public async Task Handle_IncompleteCredentials_ShouldFailed()
        {
            _mockUserReposytory.Setup(repo => repo.CheckPassword(It.IsAny <User>(), It.IsAny <string>())).ReturnsAsync(false);

            var useCase  = new LoginUserUseCase(_mockUserReposytory.Object, _mockJwtFactory.Object, _mockTokenFactory.Object);
            var responce = await useCase.Handle(new LoginRequest("", "password", "127.0.0.1"), _mockOutputPort.Object);

            Assert.False(responce);
            _mockTokenFactory.Verify(factory => factory.GenerateToken(32), Times.Never);
        }
示例#4
0
        public async Task Handler_IncorrectPassword_ShouldFail()
        {
            _mockUserReposytory.Setup(repo => repo.CheckPassword(It.IsAny <User>(), It.IsAny <string>())).ReturnsAsync(false);

            var useCase = new LoginUserUseCase(_mockUserReposytory.Object, _mockJwtFactory.Object, _mockTokenFactory.Object);

            var result = await useCase.Handle(new LoginRequest("username", "wrongpassword", "127.0.01"), _mockOutputPort.Object);

            Assert.False(result);
            _mockTokenFactory.Verify(factory => factory.GenerateToken(32), Times.Never);
        }
        public async void ExecuteWithWrongUserTest()
        {
            //Arrange
            var mockUserRepository = new Mock <IUserRepository>();
            var mockStorage        = new Mock <IStorage>();
            var mockUserService    = new Mock <IUserService>();
            var mockJwtService     = new Mock <IJwtService>();

            mockUserRepository.Setup(b => b.CheckUser(It.IsAny <Domain.Users.User>())).ReturnsAsync((Domain.Users.User)null);

            LoginUserUseCase useCase = new LoginUserUseCase(mockUserRepository.Object, mockJwtService.Object, mockUserService.Object, mockStorage.Object);

            //Act and
            //Assert
            await Assert.ThrowsAsync <UserNotFoundException>(() => useCase.Execute("Hola", "Password"));
        }