public async Task GivenListAccountsHandler_WhenCallHandle_ShouldReturn()
        {
            // assign
            var query = new ListAccountsQuery
            {
                AccountStatusId = AccountStatusIds.Active,
                AccountNumber   = "123213",
                Pagination      = new PaginationRequest
                {
                    PageSize   = 1,
                    PageNumber = 23
                }
            };
            var result = new PaginationResponse <Account>
            {
                TotalPageNumber = 100,
                Data            = new List <Account>()
            };

            _accountService.ListAccounts(query).Returns(result);

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

            // assert
            response.ShouldNotBeNull();
            response.ShouldBe(result);
        }
示例#2
0
        public async Task GivenAccountService_WhenCallListAccount_ShouldReturnAccounts()
        {
            // assign
            var request = new ListAccountsQuery
            {
                AccountStatusId = AccountStatusIds.Active,
                AccountNumber   = "ZIP0111111111",
                Pagination      = new PaginationRequest
                {
                    PageSize   = 100,
                    PageNumber = 2
                }
            };
            var response = new PaginationResponse <Account>
            {
                TotalPageNumber = 10,
                Data            = new List <Account>()
            };

            _accountDataAccessor.ListAll(request.Pagination, request.AccountStatusId, request.AccountNumber)
            .Returns(response);

            // act
            var actualResponse = await _accountService.ListAccounts(request);

            // assert
            actualResponse.ShouldBe(response);
        }
示例#3
0
        public async Task ListAccountsQuery_returns_a_list_of_accounts_when_available()
        {
            //Arrange

            IEnumerable <ListAccountsResponse> response;

            using (var db = MockDbContext())
            {
                db.Accounts.RemoveRange(db.Accounts);
                db.Accounts.Add(new Account {
                    Id = Guid.NewGuid(), Name = "account1", Status = AccountStatus.Active
                });
                db.Accounts.Add(new Account {
                    Id = Guid.NewGuid(), Name = "account2", Status = AccountStatus.Active
                });
                db.Accounts.Add(new Account {
                    Id = Guid.NewGuid(), Name = "account3", Status = AccountStatus.Active
                });
                db.SaveChanges();
            }

            using (var db = MockDbContext())
            {
                var request = new ListAccountsQuery();
                var handler = new ListAccountsQueryHandler(db);

                //Act
                response = await handler.Handle(request, CancellationToken.None);
            }

            //Assert
            response.Count().Should().Be(3);
        }
示例#4
0
        public async Task <IActionResult> List()
        {
            var query    = new ListAccountsQuery();
            var response = await Mediator.Send(query);

            return(Ok(response));
        }
示例#5
0
        public async Task <IEnumerable <ListAccountsResponse> > Handle(ListAccountsQuery request, CancellationToken cancellationToken)
        {
            var accounts = await _db.Accounts
                           .Select(a => new ListAccountsResponse {
                Id = a.Id, UserId = a.UserId, Name = a.Name, Status = a.Status, Balance = a.Balance
            })
                           .ToListAsync();

            if (accounts.Any())
            {
                return(accounts);
            }
            else
            {
                return(new List <ListAccountsResponse>());
            }
        }
示例#6
0
        public void GivenListAccountsValidator_WhenCallValidate_IfAccountNumberProvided_AndAccountNumberIsValid_ShouldSuccess(string accountNumber)
        {
            // assign
            var query = new ListAccountsQuery
            {
                AccountNumber   = accountNumber,
                AccountStatusId = null,
                Pagination      = new PaginationRequest
                {
                    PageSize   = 1,
                    PageNumber = 1
                }
            };

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

            // assert
            result.ShouldNotHaveValidationErrorFor(c => c.AccountNumber);
        }
示例#7
0
        public void GivenListAccountsValidator_WhenCallValidate_IfPaginationInvalid_ShouldFail(int pageNumber,
                                                                                               int pageSize, string expectedResult)
        {
            // assign
            var query = new ListAccountsQuery
            {
                AccountNumber   = string.Empty,
                AccountStatusId = null,
                Pagination      = new PaginationRequest
                {
                    PageSize   = pageSize,
                    PageNumber = pageNumber
                }
            };

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

            // assert
            result.ShouldHaveValidationErrorFor(c => c.Pagination)
            .WithErrorMessage(expectedResult);
        }
示例#8
0
 public async Task <PaginationResponse <Account> > Handle(ListAccountsQuery query, CancellationToken cancellationToken)
 {
     return(await _accountService.ListAccounts(query));
 }
示例#9
0
 public async Task <PaginationResponse <Account> > ListAccounts(ListAccountsQuery request)
 {
     return(await _accountDataAccessor.ListAll(request.Pagination, request.AccountStatusId, request.AccountNumber));
 }