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); }
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); }
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); }