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);
        }
Exemple #2
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);
        }
Exemple #3
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);
        }