public decimal CalculateTriggerFigure(ExpenditureMetric expenditureMetric, int adultsInHousehold, int childrenUnder16, int childrenOver16) { var result = expenditureMetric.Adult + (expenditureMetric.AdditionalAdult * (adultsInHousehold - 1) + (expenditureMetric.ChildrenUnder14 * childrenUnder16) + (expenditureMetric.Children14To18 * childrenOver16)); return(result); }
public void CalculateTriggerFigureTest() { ExpenditureMetric metric = new ExpenditureMetric() { AdditionalAdult = 0.5M, Adult = 0.6M, Children14To18 = 0.7M, ChildrenUnder14 = 0.8M, }; decimal result = this._triggerFigureService.CalculateTriggerFigure(metric, 2, 3, 4); Assert.AreEqual(6.3M, result); }
public void ConvertTest() { ExpenditureMetricApiModel sourceCommsAndLeisure = new ExpenditureMetricApiModel() { Name = "Comms and Leisure" }; ExpenditureMetricApiModel sourceFoodAndHousekeeping = new ExpenditureMetricApiModel() { Name = "Food and Housekeeping" }; ExpenditureMetricApiModel sourcePersonalCosts = new ExpenditureMetricApiModel() { Name = "Personal Costs" }; ExpenditureMetric commsAndLeisure = new ExpenditureMetric() { Name = "Comms and Leisure", AdditionalAdult = 1, Children14To18 = 2, AdjustmentPercentage = 55, Adult = 2, ChildrenUnder14 = 4, Vehicle = 2 }; ExpenditureMetric foodAndHousekeeping = new ExpenditureMetric() { Name = "Food and Housekeeping", AdditionalAdult = 2, Children14To18 = 1, AdjustmentPercentage = 44, Adult = 3, ChildrenUnder14 = 3, Vehicle = 1 }; ExpenditureMetric personalCosts = new ExpenditureMetric() { Name = "Personal Costs", AdditionalAdult = 3, Children14To18 = 4, AdjustmentPercentage = 33, Adult = 1, ChildrenUnder14 = 2, Vehicle = 0 }; _mapper.Setup(x => x.Map <ExpenditureMetric>(It.Is <ExpenditureMetricApiModel>(m => m.Name == "Comms and Leisure"))) .Returns(commsAndLeisure); _mapper.Setup(x => x.Map <ExpenditureMetric>(It.Is <ExpenditureMetricApiModel>(m => m.Name == "Food and Housekeeping"))) .Returns(foodAndHousekeeping); _mapper.Setup(x => x.Map <ExpenditureMetric>(It.Is <ExpenditureMetricApiModel>(m => m.Name == "Personal Costs"))) .Returns(personalCosts); ExpenditureMetricsApiModel source = new ExpenditureMetricsApiModel() { GuideLines = new List <ExpenditureMetricApiModel>() { sourceCommsAndLeisure, sourceFoodAndHousekeeping, sourcePersonalCosts, } }; //Create a copy of source for later ExpenditureMetricsApiModel sourceCopy = Utilities.DeepCopy(source); ExpenditureMetrics destination = new ExpenditureMetrics(); ExpenditureMetrics expected = new ExpenditureMetrics() { CommsAndLeisure = commsAndLeisure, FoodAndHousekeeping = foodAndHousekeeping, PersonalCosts = personalCosts }; ExpenditureMetrics result = _converter.Convert(source, destination, null); //Check that source hasn't been modified Assert.IsTrue(Utilities.DeepCompare(source, sourceCopy)); //Check that result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); }