Example #1
0
        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);
        }
Example #3
0
        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);
        }
Example #5
0
 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);
        }
Example #7
0
        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));
        }