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); }
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)); }
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)); }
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)); }
// 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); } }