Пример #1
0
        public async Task GetFilteredPaymentsAsync_WhenFilterInfoPassed_ShouldCreateFilterAndReturnExpectedResult()
        {
            //Arrange
            var sutBuilder = new PaymentServiceSutBuilder();

            var filterInfo = new PaymentFilterInfo();

            var filter = A.Fake <PaymentDbFilter>();

            A.CallTo(() => sutBuilder.PaymentDbFilterFactory.Create(filterInfo))
            .Returns(filter);

            var expectedList = new List <Payment>();

            A.CallTo(() => sutBuilder.PaymentRepository.GetAllAsync(filter))
            .Returns(expectedList);

            var paymentService = sutBuilder.CreateSut();

            //Act
            var results = await paymentService.GetFilteredPaymentsAsync(filterInfo);

            //Assert
            results.ShouldBe(expectedList);
        }
Пример #2
0
        private Task <IList <Payment> > GetPaymentsBetweenUsers(Guid payerId, Guid receiverId, Guid?groupContextId)
        {
            var filterData = new PaymentFilterInfo()
            {
                PayerId    = payerId,
                ReceiverId = receiverId,
                GroupId    = groupContextId,
            };

            var dbFilter = paymentDbFilterFactory.Create(filterData);

            return(paymentRepository.GetAllAsync(dbFilter));
        }
        public void Create_WhenFilterInfoIsPassed_ShouldReturnPaymentDbFilter()
        {
            //Arrange
            var paymentDbFilterFactory = new PaymentDbFilterFactory();
            var filterInfo             = new PaymentFilterInfo
            {
                GroupId    = Guid.NewGuid(),
                StartTime  = DateTime.Now.AddMilliseconds(-1000),
                EndTime    = DateTime.Now.AddMilliseconds(1000),
                PayerId    = Guid.NewGuid(),
                ReceiverId = Guid.NewGuid(),
            };

            //Act
            var result = paymentDbFilterFactory.Create(filterInfo);

            //Assert
            result.GetType().ShouldBe(typeof(PaymentDbFilter));
        }
Пример #4
0
        public void PaymentDbFilter_WhenReceiverHasPayments_ShouldReturnOnlyReceiversPayments()
        {
            //Arrange
            var sutBuilder = new PaymentDbFilterSutBuilder();
            var payments   = sutBuilder.Setup();
            var filterInfo = new PaymentFilterInfo
            {
                ReceiverId = payments[0].ReceiverId,
            };
            var filter = new PaymentDbFilter(filterInfo);

            var queryablePayments = payments.AsQueryable();

            payments = payments.Where(u => u.ReceiverId == filterInfo.ReceiverId).ToList();

            //Act
            var result = filter.ApplyFilter(queryablePayments).ToList();

            //Assert
            result.ShouldBe(payments);
        }
Пример #5
0
        public void PaymentDbFilter_WhenThereArePaymentsCreatedBeforeCertainTime_ShouldReturnAllPaymentsCreatedBeforeThatTime()
        {
            //Arrange
            var sutBuilder = new PaymentDbFilterSutBuilder();
            var payments   = sutBuilder.Setup();
            var filterInfo = new PaymentFilterInfo
            {
                EndTime = DateTime.Now.AddMilliseconds(1000),
            };
            var filter = new PaymentDbFilter(filterInfo);

            var queryablePayments = payments.AsQueryable();

            payments = payments.Where(u => u.CreationTime < filterInfo.EndTime).ToList();

            //Act
            var result = filter.ApplyFilter(queryablePayments).ToList();

            //Assert
            result.ShouldBe(payments);
        }
Пример #6
0
        public async Task <ActionResult <IList <ApiPayment> > > GetAllPayments([FromQuery] PaymentFilterInfo filterInfo)
        {
            var payments = await paymentService.GetFilteredPaymentsAsync(filterInfo);

            return(mapper.Map <List <ApiPayment> >(payments));
        }
Пример #7
0
        public Task <IList <Payment> > GetFilteredPaymentsAsync(PaymentFilterInfo paymentFilterInfo)
        {
            var filter = paymentDbFilterFactory.Create(paymentFilterInfo);

            return(paymentRepository.GetAllAsync(filter));
        }
 public IDbFilter <Payment> Create(PaymentFilterInfo loanFilterInfo)
 {
     return(new PaymentDbFilter(loanFilterInfo));
 }