public void ConvertTest_SourceNull() { ExpenditureMetricsApiModel source = null; ExpenditureMetrics destination = new ExpenditureMetrics(); Assert.IsNull(_converter.Convert(source, destination, null)); }
public async Task GetExpenditureMetricsTest_MetricsCached() { ExpenditureMetrics expenditureMetrics = new ExpenditureMetrics() { CommsAndLeisure = new ExpenditureMetric(), FoodAndHousekeeping = new ExpenditureMetric(), PersonalCosts = new ExpenditureMetric() }; this._sessionState.Setup(x => x.GetExpenditureMetrics()).Returns(expenditureMetrics); ExpenditureMetrics result = await this._triggerFigureService.GetExpenditureMetrics(this._sessionState.Object); Assert.AreEqual(expenditureMetrics, result); }
public async Task <ExpenditureMetrics> GetExpenditureMetrics(IApplicationSessionState sessionState) { ExpenditureMetrics expenditureMetrics = sessionState.GetExpenditureMetrics(); if (expenditureMetrics == null) { var innerUrl = $"{_portalSetting.GatewayEndpoint}api/BudgetCalculator/GetTriggerFigures"; ExpenditureMetricsApiModel apiExpenditureMetrics = await _restClient.GetAsync <ExpenditureMetricsApiModel>(innerUrl); expenditureMetrics = _mapper.Map <ExpenditureMetrics>(apiExpenditureMetrics); sessionState.SaveExpenditureMetrics(expenditureMetrics); } return(expenditureMetrics); }
public async Task GetExpenditureMetricsTest_MetricsNotCached() { ExpenditureMetrics expenditureMetrics = new ExpenditureMetrics() { CommsAndLeisure = new ExpenditureMetric(), FoodAndHousekeeping = new ExpenditureMetric(), PersonalCosts = new ExpenditureMetric() }; ExpenditureMetricsApiModel apiModel = new ExpenditureMetricsApiModel(); this._sessionState.Setup(x => x.GetExpenditureMetrics()).Returns <ExpenditureMetrics>(null); this._restClient.Setup(x => x.GetAsync <ExpenditureMetricsApiModel>("TESTING/api/BudgetCalculator/GetTriggerFigures")) .Returns(Task.FromResult(apiModel)); this._mapper.Setup(x => x.Map <ExpenditureMetrics>(apiModel)).Returns(expenditureMetrics); this._sessionState.Setup(x => x.SaveExpenditureMetrics(expenditureMetrics)); ExpenditureMetrics result = await this._triggerFigureService.GetExpenditureMetrics(this._sessionState.Object); Assert.AreEqual(expenditureMetrics, result); }
public void SaveExpenditureMetrics(ExpenditureMetrics guideLines) { _session.SetString(SessionKey.ExpenditureMetrics, JsonConvert.SerializeObject(guideLines)); }
public async Task ExpendituresTest() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._portalSettings.Features.EnablePartialSave = true; this._sessionState.Setup(x => x.CheckSessionStatus(id)); IncomeAndExpenditure iAndE = new IncomeAndExpenditure() { AdultsInHousehold = 1, Children16to18 = 2, ChildrenUnder16 = 3, EmploymentStatus = "employment-status", HousingStatus = "housing-status" }; ExpendituresVm vm = new ExpendituresVm() { IncomeVmSummary = new MonthlyIncomeVm() { Benefits = 100, Other = 200, Pension = 300, Salary = 400, Total = 1000 }, OutgoingsVmSummary = new MonthlyOutgoingsVm() { Expenditures = 1000, HouseholdBills = 2000, Total = 3000 } }; ExpenditureMetrics expenditureMetrics = new ExpenditureMetrics() { CommsAndLeisure = new ExpenditureMetric(), FoodAndHousekeeping = new ExpenditureMetric(), PersonalCosts = new ExpenditureMetric() }; this._sessionState.Setup(x => x.GetIncomeAndExpenditure(Guid.Parse(id))).Returns(iAndE); this._triggerFigureService.Setup(x => x.GetExpenditureMetrics(this._sessionState.Object)) .Returns(Task.FromResult(expenditureMetrics)); this._triggerFigureService.Setup(x => x.CalculateTriggerFigure(expenditureMetrics.FoodAndHousekeeping, 1, 3, 2)) .Returns(100); this._triggerFigureService.Setup(x => x.CalculateTriggerFigure(expenditureMetrics.PersonalCosts, 1, 3, 2)) .Returns(200); this._triggerFigureService.Setup(x => x.CalculateTriggerFigure(expenditureMetrics.CommsAndLeisure, 1, 3, 2)) .Returns(300); this._mapper.Setup(x => x.Map(iAndE, vm)).Returns(vm); this._triggerFigureService.Setup(x => x.CalculateMinTriggerValue(100)).Returns(80); this._triggerFigureService.Setup(x => x.CalculateMaxTriggerValue(100)).Returns(120); this._triggerFigureService.Setup(x => x.CalculateMinTriggerValue(200)).Returns(160); this._triggerFigureService.Setup(x => x.CalculateMaxTriggerValue(200)).Returns(240); this._triggerFigureService.Setup(x => x.CalculateMinTriggerValue(300)).Returns(180); this._triggerFigureService.Setup(x => x.CalculateMaxTriggerValue(300)).Returns(360); this._calculatorService.Setup(x => x.CalculateDisposableIncome(1000, 3000)).Returns(1500); this._gtmService.Setup(x => x.RaiseBudgetCalculatorExpenditureEvent( vm, this._caseflowUserId, "employment-status", "housing-status", 1000, 3000, 1500)); ViewResult result = (ViewResult)await this._controller.Expenditure(vm); Assert.AreEqual(vm, result.Model); Assert.IsTrue(vm.EnabledPartialSave); Assert.AreEqual(vm.FoodAndHouseKeepingTriggerMin, 80); Assert.AreEqual(vm.FoodAndHouseKeepingTriggerMax, 120); Assert.AreEqual(vm.PersonalCostsTriggerMin, 160); Assert.AreEqual(vm.PersonalCostsTriggerMax, 240); Assert.AreEqual(vm.CommunicationsAndLeisureTriggerMin, 180); Assert.AreEqual(vm.CommunicationsAndLeisureTriggerMax, 360); }
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)); }