Exemplo n.º 1
0
        public async Task GivenAccountRepository_WhenCallCreate_ShouldSuccess()
        {
            using (var context = await InMemoryDbContextFactory.CreateUserContext())
            {
                // assign
                var testData = (memebrId : 0, accountId : 0, memebrAccountId : 1);
                var member   = MemberDataBuilder.CreateMember(testData.memebrId, new List <MemberAccount>(), null, null);
                await context.Members.AddAsync(member);

                await context.SaveChangesAsync();

                var memberAccount = MemberDataBuilder.CreateMemberAccount(testData.memebrAccountId, testData.accountId, testData.memebrId);
                var account       = AccountDataBuilder.CreateAccount(testData.accountId, new List <MemberAccount> {
                    memberAccount
                });

                // act
                var repo = new AccountRepository(context);
                await repo.Create(account);

                await context.SaveChangesAsync();

                // assert
                account.Id.ShouldBeGreaterThan(0);
            }
        }
Exemplo n.º 2
0
        public void GivenAccountMapper_WhenMapAccountToAccountModel_ShouldMapSuccessful(long id,
                                                                                        AccountStatusIds accountStatusId,
                                                                                        decimal accountBalance, decimal pendingBalance,
                                                                                        string accountNumber)
        {
            // assign
            var memberAccounts = new List <MemberAccount>
            {
                MemberDataBuilder.CreateMemberAccount(1, id, 2),
            };
            var account = AccountDataBuilder.CreateAccount(id, memberAccounts, accountStatusId,
                                                           accountBalance, pendingBalance, accountNumber);

            account.AccountStatus = new AccountStatus
            {
                Id   = (long)accountStatusId,
                Name = accountStatusId.ToString()
            };
            // act
            var accountModel = _mapper.Map <AccountModel>(account);

            // assert
            accountModel.ShouldNotBeNull();
            accountModel.ShouldSatisfyAllConditions(
                () => accountModel.AccountNumber.ShouldBe(account.AccountNumber),
                () => accountModel.AccountStatus.ShouldBe(account.AccountStatus.Name),
                () => accountModel.Id.ShouldBe(account.Id),
                () => accountModel.AccountBalance.ShouldBe(account.AccountBalance),
                () => accountModel.PendingBalance.ShouldBe(account.PendingBalance),
                () => accountModel.AvailableBalance.ShouldBe(account.AccountBalance + account.PendingBalance));
        }
Exemplo n.º 3
0
        public void GivenCommonMapper_WhenMapSimpleResponseToApiSimpleResponse_ShouldMapSuccessfully()
        {
            // assign
            var account        = AccountDataBuilder.CreateAccount(1, null);
            var simpleResponse = SimpleResponse <Account> .Create(account);

            // act
            var apiSimpleResponse = _mapper.Map <ApiSimpleResponse <AccountModel> >(simpleResponse);

            //assert
            apiSimpleResponse.ShouldSatisfyAllConditions(
                () => apiSimpleResponse.ShouldNotBeNull(),
                () => apiSimpleResponse.Data.ShouldNotBeNull());
        }
Exemplo n.º 4
0
        private static async Task <Account> CreateOneAccountWithOneMember(int accountId, int memberId, UserContext context)
        {
            var memberAccount = MemberDataBuilder.CreateMemberAccount(1, accountId, memberId);
            var member        = MemberDataBuilder.CreateMember(1, new List <MemberAccount> {
                memberAccount
            }, null, null);
            var account = AccountDataBuilder.CreateAccount(1, new List <MemberAccount> {
                memberAccount
            });

            await context.Accounts.AddAsync(account);

            await context.Members.AddAsync(member);

            await context.SaveChangesAsync();

            return(account);
        }
Exemplo n.º 5
0
        public async Task GivenAccountService_WhenCallSignUpAccount_IfMemberIsQualifiedToSignUp_ShouldRerunAccount()
        {
            // assign
            var member          = MemberDataBuilder.CreateMember(1, null, null, null);
            var evaluatedResult = AccountSignUpResult.Success();
            var account         = AccountDataBuilder.CreateAccount(1, null);

            MockAccountSignUpStrategyResult(evaluatedResult, member);
            MockAccountSequenceNumber(100000001);
            _accountFactory.Create("ZIP0100000001", member.Id).Returns(account);

            // act
            var signedUpAccount = await _accountService.SignUpAccount(member);

            // assert
            await _accountDataAccessor.Received(1).Create(signedUpAccount);

            signedUpAccount.ShouldBe(account);
        }
Exemplo n.º 6
0
        public void GivenCommonMapper_WhenMapPaginationResponseToApiPaginationResponse_ShouldMapSuccessfully()
        {
            // assign
            var account            = AccountDataBuilder.CreateAccount(1, null);
            var paginationResponse = new PaginationResponse <Account>
            {
                TotalPageNumber = 30,
                Data            = new List <Account> {
                    account
                }
            };

            // act
            var apiPaginationResponse = _mapper.Map <ApiPaginationResponse <Account> >(paginationResponse);

            //assert
            apiPaginationResponse.ShouldSatisfyAllConditions(
                () => apiPaginationResponse.ShouldNotBeNull(),
                () => apiPaginationResponse.TotalPageNumber.ShouldBe(paginationResponse.TotalPageNumber),
                () => apiPaginationResponse.Data.ShouldNotBeNull(),
                () => apiPaginationResponse.Data.Count().ShouldBe(paginationResponse.Data.Count()));
        }
Exemplo n.º 7
0
        public async Task GivenSignUpAccountHandler_WhenCallHandle_IfMemberFound_ShouldSignUpAccount()
        {
            // assign
            var query = new SignUpAccountCommand
            {
                MemberId = 1
            };
            var member  = MemberDataBuilder.CreateMember(1, null, null, null);
            var account = AccountDataBuilder.CreateAccount(1, null);

            _memberService.GetMemberById(query.MemberId).Returns(member);
            _accountService.SignUpAccount(member).Returns(account);
            _accountService.GetAccountById(account.Id).Returns(account);

            // act
            var response = await _signUpAccountHandler.Handle(query, CancellationToken.None);

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

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