public async Task TestHandle_UserServiceCreateUserIsSuccess_ShouldSaveUserProfileToDatabase( string email, string username, string password, string userId) { // Arrange var command = new RegisterUserCommand { Email = email, Username = username, Password = password }; var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((Result.CreateSuccess(), userId)); var sut = new RegisterUserCommand.Handler(mockedUserService.Object, Mapper, Context); // Act await sut.Handle(command, CancellationToken.None); var profile = await Context.UserProfiles.SingleOrDefaultAsync(); // Assert profile.Should().NotBeNull(); profile.Username.Should().Be(username); profile.Email.Should().Be(email); profile.UserId.Should().Be(userId); }
public void TestHandle_UserServiceCreateUserIsNotSuccess_ShouldThrowBadRequestExceptionWithCorrectErrors( string email, string username, string password) { // Arrange var errors = new List <string> { "some error" }; var result = Result.CreateFailure(errors.ToArray()); var command = new RegisterUserCommand { Email = email, Username = username, Password = password }; var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((result, null)); var sut = new RegisterUserCommand.Handler(mockedUserService.Object, Mapper, Context); // Act var action = new Func <Task <UserWithProfileDto> >(async() => await sut.Handle(command, CancellationToken.None)); // Assert action.Should().Throw <BadRequestException>().And.Errors.Should().BeEquivalentTo(errors); }
public async Task Handle_Should_Call_Repository_Insert() { var command = new RegisterUserCommand { DisplayName = DISPLAY_NAME, Email = EMAIL, Password = PASSWORD }; var handler = new RegisterUserCommand.Handler(_mapperMock.Object, _userPasswordServiceMock.Object, _repositoryMock.Object); await handler.Handle(command, CancellationToken.None); _repositoryMock.Verify(x => x.Insert( It.Is <User>(u => u.Email == EMAIL && u.DisplayName == DISPLAY_NAME ), CancellationToken.None ), Times.Once); }
public async Task Handle_Should_Call_PasswordService_CreateHash() { var command = new RegisterUserCommand { DisplayName = DISPLAY_NAME, Email = EMAIL, Password = PASSWORD }; var handler = new RegisterUserCommand.Handler(_mapperMock.Object, _userPasswordServiceMock.Object, _repositoryMock.Object); await handler.Handle(command, CancellationToken.None); var hash = new byte[1]; var salt = new byte[1]; _userPasswordServiceMock.Verify(x => x.CreateHash( PASSWORD, out hash, out salt ), Times.Once); }
public async Task TestHandle_ShouldCallUserServiceCreateUserCorrectly( string email, string username, string password) { // Arrange var command = new RegisterUserCommand { Email = email, Username = username, Password = password }; var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((Result.CreateSuccess(), null)); var sut = new RegisterUserCommand.Handler(mockedUserService.Object, Mapper, Context); // Act await sut.Handle(command, CancellationToken.None); // Assert mockedUserService.Verify(s => s.CreateUser(username, email, password), Times.Once); }
public async Task TestHandle_UserServiceCreateUserIsSuccess_ShouldReturnCorrectly(string email, string username, string password, string userId) { // Arrange var command = new RegisterUserCommand { Email = email, Username = username, Password = password }; var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.CreateUser(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync((Result.CreateSuccess(), userId)); var sut = new RegisterUserCommand.Handler(mockedUserService.Object, Mapper, Context); // Act var result = await sut.Handle(command, CancellationToken.None); // Assert result.Username.Should().Be(username); result.Email.Should().Be(email); }