Example #1
0
        public async Task LoginCommandHandler_ShouldReturnNull_WhenPasswordIsInvalid()
        {
            // Arrange
            IEnumerable <User> expectedUser = new [] { new User() };

            LoginCommand request = new LoginCommand
            {
                UserNameOrEmail = "*****@*****.**",
                Password        = "******"
            };

            IQueryable <User> userQueryableMock = expectedUser
                                                  .AsQueryable()
                                                  .BuildMock()
                                                  .Object;

            _unitOfWorkMock
            .Setup(m => m.Users.GetByUserNameOrEmail(It.IsAny <string>()))
            .Returns(userQueryableMock);

            _cryptoServiceMock
            .Setup(m => m.VerifyPassword(It.IsAny <byte[]>(), It.IsAny <byte[]>(), It.IsAny <string>()))
            .Returns(false);

            LoginCommand.Handler handler = new LoginCommand.Handler(_unitOfWorkMock.Object, null, _cryptoServiceMock.Object);

            // Act
            AuthenticatedUserResource user = await handler.Handle(request);

            // Assert
            Assert.Null(user);
        }
Example #2
0
        public async Task LoginCommandHandler_ShouldReturnNull_WhenUserNameOrEmailAreInvalid()
        {
            // Arrange
            IEnumerable <User> expectedUser = new User[] { };

            LoginCommand request = new LoginCommand
            {
                UserNameOrEmail = "*****@*****.**"
            };

            Mock <IQueryable <User> > userQueryableMock = expectedUser
                                                          .AsQueryable()
                                                          .BuildMock();

            _unitOfWorkMock
            .Setup(m => m.Users.GetByUserNameOrEmail(It.IsAny <string>()))
            .Returns(userQueryableMock.Object);

            LoginCommand.Handler handler = new LoginCommand.Handler(_unitOfWorkMock.Object, null, null);

            // Act
            AuthenticatedUserResource user = await handler.Handle(request);

            // Assert
            Assert.Null(user);
        }
Example #3
0
        public async Task LoginCommandHandler_ShouldReturnUser_WhenCredentialsAreCorrect()
        {
            // Arrange
            const string expectedToken = "some.access.token";

            IEnumerable <User> expectedUser = new[]
            {
                new User {
                    UserId = 1
                }
            };

            LoginCommand request = new LoginCommand
            {
                UserNameOrEmail = "*****@*****.**",
                Password        = "******"
            };

            IQueryable <User> userQueryableMock = expectedUser
                                                  .AsQueryable()
                                                  .BuildMock()
                                                  .Object;

            _unitOfWorkMock
            .Setup(m => m.Users.GetByUserNameOrEmail(It.IsAny <string>()))
            .Returns(userQueryableMock);

            _cryptoServiceMock
            .Setup(m => m.VerifyPassword(It.IsAny <byte[]>(), It.IsAny <byte[]>(), It.IsAny <string>()))
            .Returns(true);

            _cryptoServiceMock
            .Setup(m => m.GenerateToken(It.IsAny <User>()))
            .Returns(expectedToken);

            LoginCommand.Handler handler = new LoginCommand.Handler(_unitOfWorkMock.Object, _mapperMock, _cryptoServiceMock.Object);

            // Act
            AuthenticatedUserResource user = await handler.Handle(request);

            // Assert
            Assert.NotNull(user);
            Assert.Equal(1, user.UserId);
            Assert.Equal(expectedToken, user.Token);
        }