コード例 #1
0
        public void Test_Expenses_ProjectedCashFlow_GetProjectedMonthlyListing_Fails(
            DateTime startAt,
            DateTime endAt,
            DateTime projectedAt)
        {
            var cashFlow = new ProjectedCashFlow(startAt, endAt);

            Assert.That(() => cashFlow.GetProjectedMonthlyListing(projectedAt.Year, projectedAt.Month), Throws.ArgumentException);
        }
コード例 #2
0
        public void Test_Expenses_ProjectedCashFlow_StartAt_EndAt(
            DateTime startAt,
            DateTime endAt,
            DateTime expectedStartAt,
            DateTime expectedEndAt)
        {
            var cashFlow = new ProjectedCashFlow(startAt, endAt);

            Assert.That(() => cashFlow.StartAt, Is.EqualTo(expectedStartAt));
            Assert.That(() => cashFlow.EndAt, Is.EqualTo(expectedEndAt));
        }
コード例 #3
0
        public void Test_Expenses_ProjectedCashFlow_GetExistingMonthlyListing_Null(
            DateTime startAt,
            DateTime endAt,
            DateTime at)
        {
            var cashFlow = new ProjectedCashFlow(startAt, endAt);

            Assert.That(cashFlow.GetMonthlyListing(at.Year, at.Month).IsPrediction, Is.False);
            Assert.That(cashFlow.GetMonthlyListing(at.Year, at.Month).IsNull, Is.True);
            Assert.That(cashFlow.GetMonthlyListing(at.Year, at.Month).Credit, Is.EqualTo(0.00M));
            Assert.That(cashFlow.GetMonthlyListing(at.Year, at.Month).Debit, Is.EqualTo(0.00M));
        }
コード例 #4
0
        public void Test_Expenses_ProjectedCashFlow_GetProjectedMonthlyListing(
            DateTime startAt,
            DateTime endAt,
            DateTime projectedAt,
            decimal expectedCreditAmount,
            decimal expectedDebitAmount)
        {
            var cashFlow = new ProjectedCashFlow(startAt, endAt);

            Assert.That(cashFlow.GetProjectedMonthlyListing(projectedAt.Year, projectedAt.Month).IsPrediction, Is.True);
            Assert.That(cashFlow.GetProjectedMonthlyListing(projectedAt.Year, projectedAt.Month).IsNull, Is.False);
            Assert.That(cashFlow.GetProjectedMonthlyListing(projectedAt.Year, projectedAt.Month).Credit, Is.EqualTo(expectedCreditAmount));
            Assert.That(cashFlow.GetProjectedMonthlyListing(projectedAt.Year, projectedAt.Month).Debit, Is.EqualTo(expectedDebitAmount));
        }
コード例 #5
0
        // private IEnumerable<DateTime> GetProjectedDates(DateTime endAt, DateTime projectedFinalAt)
        // {
        //     for (var date = endAt; date < projectedFinalAt; date = date.AddMonths(1))
        //     {
        //         yield return date;
        //     }
        // }

        private IEnumerable <IMonthlyListing> GetProjectedMonthlyListings(DateTime startAt, DateTime endAt, DateTime projectedFinalAt)
        {
            var cashFlow = new ProjectedCashFlow(startAt, endAt);

            for (var date = cashFlow.EndAt; date < projectedFinalAt; date = date.AddMonths(1))
            {
                IMonthlyListing result;
                try
                {
                    result = cashFlow.GetProjectedMonthlyListing(date.Year, date.Month);
                }
                catch (ArgumentException exception)
                {
                    Console.WriteLine(exception);

                    continue;
                }

                yield return(result);
            }
        }