示例#1
0
        public async Task <IList <Bill> > GetBillsAsync(Guid?groupId, DateTime?startTime, DateTime?endTime)
        {
            var filterInfo = new BillFilterInfo()
            {
                GroupId   = groupId,
                StartTime = startTime,
                EndTime   = endTime,
            };

            return(await GetFilteredBillsAsync(filterInfo));
        }
        public void Create_WhenFilterInfoIsPassed_ShouldReturnBillDbFilter()
        {
            //Arrange
            var billDbFilterFactory = new BillDbFilterFactory();
            var filterInfo          = new BillFilterInfo
            {
                StartTime = DateTime.Now.AddMilliseconds(-1000),
                EndTime   = DateTime.Now.AddMilliseconds(1000),
                LoanerId  = Guid.NewGuid(),
                GroupId   = Guid.NewGuid(),
            };

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

            //Assert
            result.GetType().ShouldBe(typeof(BillDbFilter));
        }
        public async Task GetBillsAsyncAndGetFilteredBillsAsync_BillsExistInSpecifiedFilterCriteria_ShouldReturnBillList()
        {
            //Arrange
            var sutBuilder = new BillServiceSutBuilder();
            var group      = sutBuilder.CreateGroupWithUsers("Test group", 10);
            var loaner     = group.Users.First();
            var bill       = new Bill()
            {
                Name           = "Test bill",
                Total          = 100,
                LoanerId       = loaner.Id,
                Loaner         = loaner,
                GroupContextId = group.Id,
                GroupContext   = group,
            };
            var billList = new List <Bill>
            {
                bill
            };
            var billService = sutBuilder.CreateSut();
            var startTime   = DateTime.Now.AddTicks(-1000);
            var endTime     = DateTime.Now.AddTicks(1000);

            var filterInfo = new BillFilterInfo()
            {
                GroupId   = group.Id,
                StartTime = startTime,
                EndTime   = endTime,
            };
            var filter = new BillDbFilter(filterInfo);

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

            A.CallTo(() => sutBuilder.BillRepository.GetAllAsync(filter))
            .Returns(billList);

            //Act
            IList <Bill> result = await billService.GetBillsAsync(group.Id, startTime, endTime);

            //Assert
            result.ShouldBe(billList);
        }
示例#4
0
        public void BillDbFilter_WhenGroupHasBills_ShouldReturnOnlyGroupsBills()
        {
            //Arrange
            var sutBuilder = new BillDbFilterSutBuilder();
            var bills      = sutBuilder.Setup();
            var filterInfo = new BillFilterInfo
            {
                GroupId = bills[0].GroupContextId,
            };
            var filter = new BillDbFilter(filterInfo);

            var queryableBills = bills.AsQueryable();

            bills = bills.Where(u => u.GroupContextId == bills[0].GroupContextId).ToList();

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

            //Assert
            result.ShouldBe(bills);
        }
示例#5
0
        public void BillDbFilter_WhenThereAreBillsThatWereCreatedBeforeCertainTime_ShouldReturnAllBillsCreatedBeforeThatTime()
        {
            //Arrange
            var sutBuilder = new BillDbFilterSutBuilder();
            var bills      = sutBuilder.Setup();
            var filterInfo = new BillFilterInfo
            {
                EndTime = DateTime.Now.AddMilliseconds(1000),
            };
            var filter = new BillDbFilter(filterInfo);

            var queryableBills = bills.AsQueryable();

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

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

            //Assert
            result.ShouldBe(bills);
        }
 public IDbFilter <Bill> Create(BillFilterInfo billFilterInfo)
 {
     return(new BillDbFilter(billFilterInfo));
 }
示例#7
0
        public Task <IList <Bill> > GetFilteredBillsAsync(BillFilterInfo billFilterInfo)
        {
            var filter = billDbFilterFactory.Create(billFilterInfo);

            return(billRepository.GetAllAsync(filter));
        }