public void FindCategoryWithTransactionsWithDateTodayReturnsEmptyTransactionCollection()
        {
            DataHelper.NewDb();

            var service = new RentalsService();

            var actual = service.FindCategoryWithTransactions(1, DateTime.Today, DateTime.Today);

            Assert.IsNotNull(actual);
            Assert.AreEqual(0, actual.Transactions.Count);
        }
        public void CanFindCategoryByIdWithAllItsTransactions()
        {
            DataHelper.NewDb();

            var service = new RentalsService();

            var actual = service.FindCategoryWithTransactions(1);

            var expected = DataHelper.Categories.SingleOrDefault(c => c.Id == 1);

            Assert.AreEqual(expected.Name, actual.Name);
            Assert.AreEqual(DataHelper.Transactions.Count(t => t.CategoryId == 1), actual.Transactions.Count);
        }
        public void FindCategoryWithTransactionsOnSortableIncomeWithDateTodayReturnsTransactionCollection()
        {
            DataHelper.NewDb();
            var categoryId = DataHelper.Categories.Where(a => a.Name == "Sortable Income").SingleOrDefault().Id;

            var service = new RentalsService();

            var expected = DataHelper.Transactions
                           .Where(t => t.CategoryId == categoryId &&
                                  t.Date == DateTime.Today);
            var actual = service.FindCategoryWithTransactions(categoryId, DateTime.Today, DateTime.Today);

            Assert.IsNotNull(actual);
            Assert.AreEqual(expected.Count(), actual.Transactions.Count);
        }
        public void FindCategoryWithTransactionsOnSortableIncomeWithDateRangeAndOrderAscendingReturnsSortedTransactionCollection()
        {
            DataHelper.NewDb();
            var categoryId = DataHelper.Categories.Where(a => a.Name == "Sortable Income").SingleOrDefault().Id;

            var service = new RentalsService();

            var expected = DataHelper.Transactions
                           .Where(t => t.CategoryId == categoryId &&
                                  t.Date >= DateTime.Today.AddMonths(-6) &&
                                  t.Date <= DateTime.Today);
            var actual = service.FindCategoryWithTransactions(categoryId, DateTime.Today.AddMonths(-6), DateTime.Today, true);

            Assert.IsNotNull(actual);
            var order = actual.Transactions.First().Amount;

            foreach (var transaction in actual.Transactions)
            {
                Assert.AreEqual(order, transaction.Amount);
                order += 1.00m;
            }
        }