Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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);
        }