public async Task IndexTest() { string sessionId = Guid.NewGuid().ToString(); Guid id = Guid.NewGuid(); string lowellReference = "123456789"; IncomeAndExpenditure iAndE = new IncomeAndExpenditure(); HouseholdStatusVm vm = new HouseholdStatusVm(); this._sessionState.Setup(x => x.SessionId).Returns(sessionId); this._sessionState.Setup(x => x.AddLowellReferenceSurrogateKey(sessionId)).Returns(id); this._sessionState.SetupSet(x => x.IandELaunchedExternally = true); this._sessionState.Setup(x => x.GetIncomeAndExpenditure(id)).Returns(iAndE); this._mapper.Setup(x => x.Map <HouseholdStatusVm>(iAndE)).Returns(vm); this._sessionState.Setup(x => x.SaveIncomeAndExpenditure(iAndE, id)); this._gtmService.Setup(x => x.RaiseBudgetCalculatorStartedEvent(vm, this._caseflowUserId)); this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(id)).Returns(lowellReference); this._webActivityService.Setup(x => x.LogBudgetCalculatorIncome(lowellReference, this._caseflowUserId)) .Returns(Task.CompletedTask); ViewResult result = (ViewResult)await this._controller.Index(); Assert.AreEqual(id, this._controller.RouteData.Values["id"]); Assert.AreEqual(vm, result.Model); Assert.AreEqual("HouseholdStatus", result.ViewName); Assert.AreEqual(true, vm.ExternallyLaunched); Assert.AreEqual(false, vm.SavedIAndE); Assert.AreEqual(1, vm.AdultsInHousehold); }
public void ConvertTest_SourceNull() { IncomeAndExpenditure source = null; HouseholdStatusVm destination = new HouseholdStatusVm() { AdultsInHousehold = Int32.MaxValue, ChildrenOver16 = Int32.MaxValue, ChildrenUnder16 = Int32.MaxValue, HousingStatus = "test", GtmEvents = new List <GtmEvent>() { new GtmEvent() { account_ref = "test" } }, EmploymentStatus = "test", ExternallyLaunched = true, PartialSavedIAndE = true, SavedIAndE = true }; HouseholdStatusVm expected = Utilities.DeepCopy(destination); expected.AdultsInHousehold = 0; expected.ChildrenOver16 = 0; expected.ChildrenUnder16 = 0; expected.EmploymentStatus = null; expected.HousingStatus = null; HouseholdStatusVm result = _converter.Convert(source, destination, null); //Check result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); }
public async Task <IActionResult> Index() { // TODO: Is this correct ??!! You are adding Session ID to Lowell Ref! Guid id = ApplicationSessionState.AddLowellReferenceSurrogateKey(ApplicationSessionState.SessionId); ApplicationSessionState.IandELaunchedExternally = true; IncomeAndExpenditure incomeAndExpenditure = ApplicationSessionState.GetIncomeAndExpenditure(id); HouseholdStatusVm vm = new HouseholdStatusVm { ExternallyLaunched = true, SavedIAndE = false, AdultsInHousehold = 1 }; if (incomeAndExpenditure != null) { vm = _mapper.Map <HouseholdStatusVm>(incomeAndExpenditure); vm.ExternallyLaunched = true; vm.SavedIAndE = false; vm.AdultsInHousehold = 1; ApplicationSessionState.SaveIncomeAndExpenditure(incomeAndExpenditure, id); } _gtmService.RaiseBudgetCalculatorStartedEvent(vm, LoggedInUserId); await _webActivityService.LogBudgetCalculatorIncome(ApplicationSessionState.GetLowellReferenceFromSurrogate(id), LoggedInUserId); RouteData.Values.Add("id", id); return(View("HouseholdStatus", vm)); }
public async Task <IActionResult> HouseholdStatusPost(HouseholdStatusVm viewModel) { var id = RouteData.Values["id"]; if (id == null) { return(RedirectToAction("Index", "MyAccounts")); } ApplicationSessionState.CheckSessionStatus(id.ToString()); if (!ModelState.IsValid) { return(View("HouseholdStatus", viewModel)); } Guid guid = Guid.Parse(id.ToString()); IncomeAndExpenditure incomeAndExpenditure = ApplicationSessionState.GetIncomeAndExpenditure(guid); incomeAndExpenditure = _mapper.Map(viewModel, incomeAndExpenditure); ApplicationSessionState.SaveIncomeAndExpenditure(incomeAndExpenditure, guid); await _webActivityService.LogBudgetCalculatorIncome(ApplicationSessionState.GetLowellReferenceFromSurrogate(guid), LoggedInUserId); return(RedirectToAction("YourIncome", new { id })); }
public async Task <IActionResult> HouseholdStatus(HouseholdStatusVm viewModel) { ModelState.Clear(); ApplicationSessionState.IandELaunchedExternally = false; var id = RouteData.Values["id"]; if (id == null) { return(RedirectToAction("Index", "MyAccounts")); } ApplicationSessionState.CheckSessionStatus(id.ToString()); Guid guid = Guid.Parse(id.ToString()); string lowellReference = ApplicationSessionState.GetLowellReferenceFromSurrogate(guid); Guid caseflowUserId = LoggedInUser.IsLoggedInUser ? Guid.Parse(GetCaseflowUserId()) : Guid.NewGuid(); IncomeAndExpenditure savedIAndE = await _budgetCalculatorService.GetSavedIncomeAndExpenditure(lowellReference); IncomeAndExpenditure partialSavedIAndE = viewModel.PartialSavedIAndE ? await _budgetCalculatorService.GetPartiallySavedIncomeAndExpenditure(LoggedInUserId, caseflowUserId) : null; IncomeAndExpenditure iAndE = partialSavedIAndE != null ? partialSavedIAndE : savedIAndE; if (iAndE == null) { //See if there is a cached I & E from OpenWrks iAndE = this.ApplicationSessionState.GetIncomeAndExpenditure(guid); } if (iAndE != null) { iAndE.BudgetSource = ""; ApplicationSessionState.SaveIncomeAndExpenditure(iAndE, guid); await _webActivityService.LogBudgetCalculatorReplayed(ApplicationSessionState.GetLoggedInLowellRef(), LoggedInUserId); viewModel = _mapper.Map(iAndE, viewModel); viewModel.SavedIAndE = true; viewModel.PartialSavedIAndE = partialSavedIAndE != null; } await _webActivityService.LogBudgetCalculatorHouseholdDetails(lowellReference, LoggedInUserId); _gtmService.RaiseBudgetCalculatorStartedEvent(viewModel, LoggedInUserId); if (viewModel.AdultsInHousehold == null) { viewModel.AdultsInHousehold = 1; } return(View(viewModel)); }
public void RaiseBudgetCalculatorStartedEvent(HouseholdStatusVm vm, string userId) { vm.GtmEvents.Add(new GtmEvent() { gtm_event = GtmEvents.BudgetCalculator, step = BudgetCalculatorSteps.Step1Started, guid = userId, user_status = String.IsNullOrEmpty(userId) ? "Not Logged In" : "Logged In", housing_status = vm == null ? null : String.IsNullOrEmpty(vm.HousingStatus) ? null : vm.HousingStatus, employment_status = vm == null ? null : String.IsNullOrEmpty(vm.EmploymentStatus) ? null : vm.EmploymentStatus }); }
public void HouseholdStatusVm_WithCircumstanceAndHousingStatusNotSet_FailsValidation() { var model = new HouseholdStatusVm() { EmploymentStatus = "Please select", HousingStatus = "Please select" }; var result = _validator.Validate(model); Assert.IsTrue(result.IsValid == false); Assert.AreEqual(result.Errors.Count, 2); }
public void HouseholdStatusVm_WithCircumstanceAndHousingStatusSet_NoValidationErrors() { var model = new HouseholdStatusVm() { EmploymentStatus = "Employed", HousingStatus = "Mortgage" }; var result = _validator.Validate(model); Assert.IsTrue(result.IsValid); Assert.AreEqual(result.Errors.Count, 0); }
public async Task HouseholdStatusTest_PartialIandENotNull() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._sessionState.SetupSet(x => x.IandELaunchedExternally = false); this._sessionState.Setup(x => x.CheckSessionStatus(id)); string lowellReference = "123456789"; this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))) .Returns(lowellReference); IncomeAndExpenditure savedIandE = new IncomeAndExpenditure(); this._budgetCalculatorService.Setup(x => x.GetSavedIncomeAndExpenditure(lowellReference)) .Returns(Task.FromResult(savedIandE)); IncomeAndExpenditure partiallySavedIandE = new IncomeAndExpenditure(); this._budgetCalculatorService.Setup(x => x.GetPartiallySavedIncomeAndExpenditure(this._caseflowUserId, Guid.Parse(this._caseflowUserId))) .Returns(Task.FromResult(partiallySavedIandE)); this._sessionState.Setup(x => x.SaveIncomeAndExpenditure(partiallySavedIandE, Guid.Parse(id))); this._sessionState.Setup(x => x.GetLoggedInLowellRef()).Returns(lowellReference); this._webActivityService.Setup(x => x.LogBudgetCalculatorReplayed(lowellReference, this._caseflowUserId)) .Returns(Task.CompletedTask); HouseholdStatusVm vm = new HouseholdStatusVm() { PartialSavedIAndE = true }; HouseholdStatusVm expectedVm = new HouseholdStatusVm() { PartialSavedIAndE = true }; this._mapper.Setup(x => x.Map(partiallySavedIandE, vm)).Returns(expectedVm); this._webActivityService.Setup(x => x.LogBudgetCalculatorHouseholdDetails(lowellReference, this._caseflowUserId)) .Returns(Task.CompletedTask); this._gtmService.Setup(x => x.RaiseBudgetCalculatorStartedEvent(expectedVm, this._caseflowUserId)); ViewResult result = (ViewResult)await this._controller.HouseholdStatus(vm); Assert.AreEqual(expectedVm, result.Model); Assert.AreEqual(true, expectedVm.SavedIAndE); Assert.AreEqual(true, expectedVm.PartialSavedIAndE); }
public void ConvertTest_SourceNull() { HouseholdStatusVm source = null; IncomeAndExpenditure destination = Utilities.CreateDefaultTestIAndE(); IncomeAndExpenditure expected = Utilities.DeepCopy(destination); expected.AdultsInHousehold = 0; expected.Children16to18 = 0; expected.ChildrenUnder16 = 0; expected.EmploymentStatus = null; expected.HousingStatus = null; IncomeAndExpenditure result = _converter.Convert(source, destination, null); //Check result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); }
public void ConvertTest_DestinationNull() { HouseholdStatusVm source = new HouseholdStatusVm() { AdultsInHousehold = 1, ChildrenOver16 = 2, ChildrenUnder16 = 3, EmploymentStatus = "employed-full-time", ExternallyLaunched = true, GtmEvents = new List <GtmEvent>() { new GtmEvent() { account_ref = "123456789" } }, HousingStatus = "homeowner", PartialSavedIAndE = true, SavedIAndE = true }; //Create a copy of source for later HouseholdStatusVm sourceCopy = Utilities.DeepCopy(source); IncomeAndExpenditure destination = null; IncomeAndExpenditure expected = new IncomeAndExpenditure(); expected.AdultsInHousehold = 1; expected.Children16to18 = 2; expected.ChildrenUnder16 = 3; expected.EmploymentStatus = "employed-full-time"; expected.HousingStatus = "homeowner"; IncomeAndExpenditure result = _converter.Convert(source, destination, null); //Check result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); //Check that source hasn't been modified Assert.IsTrue(Utilities.DeepCompare(source, sourceCopy)); }
public async Task HouseholdStatusPostTest_ModelInvalid() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._controller.ModelState.AddModelError("testing", "testing"); HouseholdStatusVm vm = new HouseholdStatusVm() { AdultsInHousehold = 0, }; string lowellReference = "123456789"; this._sessionState.Setup(x => x.CheckSessionStatus(id)); this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))).Returns(lowellReference); ViewResult result = (ViewResult)await this._controller.HouseholdStatusPost(vm); Assert.AreEqual("HouseholdStatus", result.ViewName); Assert.AreEqual(vm, result.Model); }
public async Task HouseholdStatusPostTest() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); HouseholdStatusVm vm = new HouseholdStatusVm() { AdultsInHousehold = 1, ChildrenOver16 = 2, ChildrenUnder16 = 3, HousingStatus = "homeowner", EmploymentStatus = "full-time", ExternallyLaunched = false, GtmEvents = new List <GtmEvent>(), PartialSavedIAndE = false, SavedIAndE = false }; string lowellReference = "123456789"; IncomeAndExpenditure iAndE = new IncomeAndExpenditure(); this._sessionState.Setup(x => x.CheckSessionStatus(id)); this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))).Returns(lowellReference); this._sessionState.Setup(x => x.GetIncomeAndExpenditure(Guid.Parse(id))).Returns(iAndE); this._mapper.Setup(x => x.Map(vm, iAndE)).Returns(iAndE); this._sessionState.Setup(x => x.SaveIncomeAndExpenditure(iAndE, Guid.Parse(id))); this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))).Returns(lowellReference); this._webActivityService.Setup(x => x.LogBudgetCalculatorIncome(lowellReference, this._caseflowUserId)) .Returns(Task.CompletedTask); RedirectToActionResult result = (RedirectToActionResult)await this._controller.HouseholdStatusPost(vm); Assert.AreEqual("YourIncome", result.ActionName); Assert.AreEqual(id, result.RouteValues["id"]); }
public void ConvertTest() { IncomeAndExpenditure source = new IncomeAndExpenditure() { Mortgage = 100, MortgageArrears = 10, MortgageFrequency = "monthly", Rental = 150, RentalArrears = 0, RentalFrequency = "weekly", Electricity = 200, ElectricityArrears = 20, ElectricityFrequency = "fortnightly", CCJs = 250, CCJsArrears = 0, CCJsFrequency = "monthly", ChildMaintenance = 300, ChildMaintenanceArrears = 30, ChildMaintenanceFrequency = "weekly", CouncilTax = 350, CouncilTaxArrears = 0, CouncilTaxFrequency = "fortnightly", CourtFines = 400, CourtFinesArrears = 40, CourtFinesFrequency = "monthly", Gas = 450, GasArrears = 0, GasFrequency = "weekly", OtherUtilities = 500, OtherUtilitiesArrears = 50, OtherUtilitiesFrequency = "fortnightly", Rent = 550, RentArrears = 0, RentFrequency = "monthly", SecuredLoans = 600, SecuredloansArrears = 60, SecuredLoansFrequency = "weekly", TvLicence = 650, TvLicenceArrears = 0, TvLicenceFrequency = "fortnightly", Water = 700, WaterArrears = 70, WaterFrequency = "monthly", AdultsInHousehold = 1, ChildrenUnder16 = 2, Children16to18 = 3, HasArrears = true, UtilitiesTotal = 750, UtilitiesTotalArrears = 0, UtilitiesTotalFrequency = "weekly", User = "******", Created = DateTime.Now.Date, Healthcare = 800, HealthcareFrequency = "fortnightly", HomeContents = 850, HomeContentsArrears = 0, HomeContentsFrequency = "monthly", EmploymentStatus = "student", Housekeeping = 900, HousekeepingFrequency = "monthly", HousingStatus = "homeowner", DisposableIncome = 999.99M, BenefitsTotal = 888.88M, BenefitsTotalFrequency = "monthly", Leisure = 50, LeisureFrequency = "weekly", OtherDebts = new List <SaveOtherDebts>(), OtherExpenditure = 60, OtherExpenditureFrequency = "fortnightly", OtherIncome = 500, OtherincomeFrequency = "monthly", LowellReference = "123456789", EarningsTotal = 10000, EarningsTotalFrequency = "monthly", PersonalCosts = 225, PersonalCostsFrequency = "monthly", Pension = 400, PensionFrequency = "monthly", Salary = 9999, SalaryFrequency = "monthly", SavingsContributions = 55, SavingsContributionsFrequency = "weekly", SchoolCosts = 5, SchoolCostsFrequency = "weekly", Travel = 45, TravelFrequency = "fortnightly", ProfessionalCosts = 123, ProfessionalCostsFrequency = "monthly", IncomeTotal = 1234.56M, PensionInsurance = 75, PensionInsuranceFrequency = "monthly", ExpenditureTotal = 1000 }; //Create a copy of source for later IncomeAndExpenditure sourceCopy = Utilities.DeepCopy(source); HouseholdStatusVm destination = new HouseholdStatusVm() { AdultsInHousehold = Int32.MaxValue, ChildrenOver16 = Int32.MaxValue, ChildrenUnder16 = Int32.MaxValue, HousingStatus = "test", GtmEvents = new List <GtmEvent>() { new GtmEvent() { account_ref = "test" } }, EmploymentStatus = "test", ExternallyLaunched = true, PartialSavedIAndE = true, SavedIAndE = true }; HouseholdStatusVm expected = Utilities.DeepCopy(destination); expected.AdultsInHousehold = 1; expected.ChildrenOver16 = 3; expected.ChildrenUnder16 = 2; expected.EmploymentStatus = "student"; expected.HousingStatus = "homeowner"; HouseholdStatusVm result = _converter.Convert(source, destination, null); //Check that the result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); //Check that source hasn't been modified Assert.IsTrue(Utilities.DeepCompare(source, sourceCopy)); }