public Budget CreateBudget(BudgetTemplate template, DateTime startDate) { var endDate = default(DateTime); switch (template.Duration) { case Duration.Weekly: endDate = AddWeek(startDate); break; case Duration.Monthly: endDate = AddMonth(startDate); break; case Duration.Quarterly: break; case Duration.Yearly: break; default: throw new ArgumentOutOfRangeException(); } return new Budget {ValidFrom = startDate, ValidTo = endDate}; }
public IHttpActionResult CreateTemplate(CreateTemplateModel parameter) { var template = new BudgetTemplate { Duration = parameter.Duration, Name = parameter.Name }; _templateRepository.Persist(template); return CreatedAtRoute("GetTemplateById", new { id = template.Id }, template); }
public void CreateBudgetTemplate_Should_Persist_Budget_Template_In_Repository() { var budgetTemplate = new BudgetTemplate(); _sut.CreateBudgetTemplate(budgetTemplate); A.CallTo(() => _templateRepository.Persist(budgetTemplate)) .MustHaveHappened(); }
public void CreateBudgetTemplate_Should_Return_Budget_Template_From_Repository() { var expected = new BudgetTemplate(); A.CallTo(() => _templateRepository.Persist(A<BudgetTemplate>._)) .Returns(expected); var result = _sut.CreateBudgetTemplate(new BudgetTemplate()); Assert.That(result, Is.EqualTo(expected)); }
public void CreateBudgetFromTemplate_By_Template_Should_Create_Budget_Using_Factory() { var someTemplate = new BudgetTemplate(); var someDate = DateTime.Today; _sut.CreateBudgetFromTemplate(someTemplate, someDate); A.CallTo(() => _budgetFactory.CreateBudget(someTemplate, someDate)) .MustHaveHappened(); }
public void Can_Create_Monthly_Budget_From_Template(DateTime expectedStartDate, DateTime expectedEndDate) { // Arrange var template = new BudgetTemplate {Duration = Duration.Monthly, Name = "Monthly Budget"}; // Act var budget = _budgetFactory.CreateBudget(template, expectedStartDate); // Assert Assert.That(budget, Is.Not.Null); Assert.That(budget.ValidFrom, Is.EqualTo(expectedStartDate)); Assert.That(budget.ValidTo, Is.EqualTo(expectedEndDate)); }
public void CreateBudgetFromTemplate_By_Template_Id_Should_Persist_Created_Budget_In_Repository() { var someTemplateId = 1; var someTemplate = new BudgetTemplate(); var someBudget = new Budget(); A.CallTo(() => _templateRepository.FindById(someTemplateId)) .Returns(someTemplate); A.CallTo(() => _budgetFactory.CreateBudget(A<BudgetTemplate>._, A<DateTime>._)) .Returns(someBudget); _sut.CreateBudgetFromTemplate(someTemplateId, DateTime.Today); A.CallTo(() => _budgetRepository.Persist(someBudget)).MustHaveHappened(); }
public void Can_Create_Weekly_Budget_From_Template() { // Arrange var template = new BudgetTemplate {Duration = Duration.Weekly, Name = "Weekly Budget"}; var expectedStartDate = new DateTime(2015, 10, 2); var expectedEndDate = new DateTime(2015, 10, 8); // Act var budget = _budgetFactory.CreateBudget(template, expectedStartDate); // Assert Assert.That(budget, Is.Not.Null); Assert.That(budget.ValidFrom, Is.EqualTo(expectedStartDate)); Assert.That(budget.ValidTo, Is.EqualTo(expectedEndDate)); }
public BudgetTemplate UpdateBudgetTemplate(BudgetTemplate template) { return _templateRepository.Persist(template); }
public Budget CreateBudgetFromTemplate(BudgetTemplate template, DateTime startDate) { Budget newBudget = _factory.CreateBudget(template, startDate); _budgetRepository.Persist(newBudget); return newBudget; }