public async Task <QuarterWindow> GetNextQuarterWindow(QuarterType q, int year) { int next = q == QuarterType.Q4 ? 1 : (int)q + 1; QuarterWindowTemplate quarterWindowTemplate = await dataAccess.GetByQuarter(next); DateTime startDate = new DateTime(year + quarterWindowTemplate.AddStartYears, quarterWindowTemplate.StartMonth, quarterWindowTemplate.StartDay); DateTime endDate = new DateTime(year + quarterWindowTemplate.AddEndYears, quarterWindowTemplate.EndMonth, quarterWindowTemplate.EndDay); return(new QuarterWindow(startDate, endDate, (QuarterType)next)); }
public async void GetNextQuarterWindow_CurrentIsQ1_ReturnsQ2() { Quarter quarter = new Quarter(2019, QuarterType.Q1); QuarterWindowTemplate quarterWindowTemplate = QuarterWindowTemplate(7, 1, 0, 1); A.CallTo(() => dataAccess.GetByQuarter(((int)quarter.Q) + 1)).Returns(quarterWindowTemplate); QuarterWindow result = await quarterWindowFactory.GetNextQuarterWindow(QuarterType.Q1, 2019); result.StartDate.Year.Should().Be(2019); result.StartDate.Month.Should().Be(07); result.StartDate.Day.Should().Be(01); result.EndDate.Year.Should().Be(2020); result.EndDate.Month.Should().Be(03); result.EndDate.Day.Should().Be(16); Assert.Equal(QuarterType.Q2, result.QuarterType); }