Example #1
0
        public async Task <SimpleResponse <Member> > Handle(SignUpMemberCommand request, CancellationToken cancellationToken)
        {
            var member = _memberFactory.Create(request.Email, request.Name,
                                               request.MonthlyExpense, request.MonthlySalary);

            member = await _memberService.SignUpMember(member);

            await _userUnitOfWork.SaveChangesAsync(cancellationToken);

            member = await _memberService.GetMemberById(member.Id);

            return(SimpleResponse <Member> .Create(member));
        }
Example #2
0
        public void GivenSignUpMemberValidator_WhenCallValidate_IfInputValid_ShouldSuccess()
        {
            // assign
            var command = new SignUpMemberCommand()
            {
                Name           = "jack",
                Email          = "*****@*****.**",
                MonthlySalary  = 100,
                MonthlyExpense = 300
            };

            // act
            var result = _validator.TestValidate(command);

            // assert
            result.ShouldNotHaveAnyValidationErrors();
        }
Example #3
0
        public void GivenSignUpMemberValidator_WhenCallValidate_IfMonthlySalaryIsInvalid_ShouldFail(
            decimal amount, string expectedMessage)
        {
            // assign
            var command = new SignUpMemberCommand()
            {
                Name           = "jack",
                Email          = "*****@*****.**",
                MonthlySalary  = amount,
                MonthlyExpense = 300
            };

            // act
            var result = _validator.TestValidate(command);

            // assert
            result.ShouldHaveValidationErrorFor(c => c.MonthlySalary)
            .WithErrorMessage(expectedMessage);
        }
Example #4
0
        public void GivenSignUpMemberValidator_WhenCallValidate_IfEmailHasInvalidFormat_ShouldFail(
            string email)
        {
            // assign
            var command = new SignUpMemberCommand()
            {
                Name           = "jack",
                Email          = email,
                MonthlySalary  = 100,
                MonthlyExpense = 300
            };

            // act
            var result = _validator.TestValidate(command);

            // assert
            result.ShouldHaveValidationErrorFor(c => c.Email)
            .WithErrorMessage(string.Format(ValidationTokens.InvalidEmailFormat, ValidationTokens.MemberEmail));
        }
Example #5
0
        public void GivenSignUpMemberValidator_WhenCallValidate_IfMemberNameIsEmpty_ShouldFail(
            string memberName)
        {
            // assign
            var command = new SignUpMemberCommand()
            {
                Name           = memberName,
                Email          = "*****@*****.**",
                MonthlySalary  = 100,
                MonthlyExpense = 300
            };

            // act
            var result = _validator.TestValidate(command);

            // assert
            result.ShouldHaveValidationErrorFor(c => c.Name)
            .WithErrorMessage(string.Format(ValidationTokens.IsRequire, ValidationTokens.MemberName));
        }
        public async Task GivenSignUpMemberHandler_WhenCallHandle_IfMemberFound_ShouldSignUpMember()
        {
            // assign
            var query = new SignUpMemberCommand
            {
                Name           = "jack",
                Email          = "*****@*****.**",
                MonthlySalary  = 1000,
                MonthlyExpense = 3000
            };
            var member = MemberDataBuilder.CreateMember(1, null, null, null);

            _memberFactory.Create(query.Email, query.Name, query.MonthlyExpense, query.MonthlySalary).Returns(member);
            _memberService.SignUpMember(Arg.Any <Member>()).Returns(member);
            _memberService.GetMemberById(Arg.Any <long>()).Returns(member);
            // act
            var response = await _signUpMemberHandler.Handle(query, CancellationToken.None);

            // assert
            await _unitOfWork.Received(1).SaveChangesAsync(CancellationToken.None);

            response.ShouldNotBeNull();
            response.Data.ShouldBe(member);
        }