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