private (Budget, BudgetPeriod) CreateNewUserRootBudget(User user) { BudgetDurationBase duration = new MonthlyBookEndedDuration(newUserRootBudgetDurationEndDate, newUserRootBudgetDurationShouldRollover); Fund rootFund = new Fund(newUserRootFundName, newUserRootFundBalance, duration, user.Id); DateTime startDate = DateTime.Now; DateTime endDate = duration.GetEndDateFromStartDate(startDate); BudgetPeriod firstBudgetPeriod = new BudgetPeriod(startDate, endDate); Budget firstRootBudget = new Budget(rootFund, firstBudgetPeriod); firstBudgetPeriod.RootBudget = firstRootBudget; return(firstRootBudget, firstBudgetPeriod); }
public void Test_BookendedDurationGetEndDate_ReturnsCorrect(int startYear, int startMonth, int startDay, int endDate, bool rolover, int expectedYear, int expectedMonth, int expectedDay) { BudgetDurationBuilderProvider builderProvider = _builderFactoryFixture.GetService <BudgetDurationBuilderProvider>(); MonthlyBookEndedDuration subject = (MonthlyBookEndedDuration)((MonthlyBookEndedDurationBuilder)builderProvider.GetBuilder <MonthlyBookEndedDuration>()) .SetDurationEndDayOfMonth(endDate) .SetDurationRolloverEndDateOnSmallMonths(rolover) .Build(); DateTime startDate = new DateTime(startYear, startMonth, startDay); DateTime expected = new DateTime(expectedYear, expectedMonth, expectedDay); DateTime actual = subject.GetEndDateFromStartDate(startDate); Assert.Equal(expected, actual); }