private static FiscalQuarter TweakBy( this FiscalQuarter fiscalQuarter, int amount, FiscalQuarterComponent componentToTweak) { if (componentToTweak == FiscalQuarterComponent.Quarter) { var referenceMonth = new DateTime(fiscalQuarter.Year, (int)fiscalQuarter.QuarterNumber * 3, 1); var updatedMonth = referenceMonth.AddMonths(amount * 3); var result = new FiscalQuarter(updatedMonth.Year, (QuarterNumber)(updatedMonth.Month / 3)); return(result); } if (componentToTweak == FiscalQuarterComponent.Year) { var result = new FiscalQuarter(fiscalQuarter.Year + amount, fiscalQuarter.QuarterNumber); return(result); } throw new NotSupportedException("this fiscal quarter component is not supported: " + componentToTweak); }
private static FiscalQuarter TweakComponentOfFiscalQuarter(this FiscalQuarter fiscalQuarter, FiscalQuarterComponent componentToTweak) { if (componentToTweak == FiscalQuarterComponent.Quarter) { var tweakedQuarter = A.Dummy <QuarterNumber>().ThatIsNot(fiscalQuarter.QuarterNumber); var result = new FiscalQuarter(fiscalQuarter.Year, tweakedQuarter); return(result); } if (componentToTweak == FiscalQuarterComponent.Year) { var tweakedYear = A.Dummy <PositiveInteger>().ThatIs(y => y != fiscalQuarter.Year && y <= 9999); var result = new FiscalQuarter(tweakedYear, fiscalQuarter.QuarterNumber); return(result); } throw new NotSupportedException("this fiscal quarter component is not supported: " + componentToTweak); }