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); }
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); }
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)); }
public Task <IList <Bill> > GetFilteredBillsAsync(BillFilterInfo billFilterInfo) { var filter = billDbFilterFactory.Create(billFilterInfo); return(billRepository.GetAllAsync(filter)); }