public async Task BillsAndOutgoingsPostTest() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._portalSettings.Features.EnablePartialSave = true; IncomeAndExpenditure iAndE = new IncomeAndExpenditure(); BillsAndOutgoingsVm vm = new BillsAndOutgoingsVm(); MonthlyIncome monthlyIncome = new MonthlyIncome(); MonthlyIncomeVm monthlyIncomeVm = new MonthlyIncomeVm(); this._sessionState.Setup(x => x.CheckSessionStatus(id)); 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._calculatorService.Setup(x => x.CalculateMonthlyIncome(iAndE)).Returns(monthlyIncome); string lowellReference = "123456789"; this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))) .Returns(lowellReference); RedirectToActionResult result = (RedirectToActionResult)await this._controller .BillsAndOutgoingsPost(vm, "testing"); Assert.AreEqual("Expenditure", result.ActionName); Assert.AreEqual(id, result.RouteValues["id"]); Assert.IsTrue(vm.EnabledPartialSave); }
public IActionResult BillsAndOutgoings(BillsAndOutgoingsVm viewModel) { var id = RouteData.Values["id"]; if (id == null) { return(RedirectToAction("Index", "MyAccounts")); } Guid guid = Guid.Parse(id.ToString()); ApplicationSessionState.CheckSessionStatus(id.ToString()); viewModel.EnabledPartialSave = _portalSettings.Features.EnablePartialSave && LoggedInUser.IsLoggedInUser; IncomeAndExpenditure incomeAndExpenditure = ApplicationSessionState.GetIncomeAndExpenditure(guid); if (incomeAndExpenditure == null) { return(View(viewModel)); } viewModel = _mapper.Map(incomeAndExpenditure, viewModel); string housingStatus = incomeAndExpenditure.HousingStatus; string employmentStatus = incomeAndExpenditure.EmploymentStatus; _gtmService.RaiseBudgetCalculatorIncomeEvent(viewModel, LoggedInUserId, employmentStatus, housingStatus, viewModel.IncomeSummary.Total); return(View(viewModel)); }
public async Task BillsAndOutgoingsPostTest_InvalidModelState() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._controller.ModelState.AddModelError("testing", "testing"); this._portalSettings.Features.EnablePartialSave = true; IncomeAndExpenditure iAndE = new IncomeAndExpenditure(); BillsAndOutgoingsVm vm = new BillsAndOutgoingsVm(); MonthlyIncome monthlyIncome = new MonthlyIncome(); MonthlyIncomeVm monthlyIncomeVm = new MonthlyIncomeVm(); this._sessionState.Setup(x => x.CheckSessionStatus(id)); 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._calculatorService.Setup(x => x.CalculateMonthlyIncome(iAndE)).Returns(monthlyIncome); this._mapper.Setup(x => x.Map <MonthlyIncome, MonthlyIncomeVm>(monthlyIncome)).Returns(monthlyIncomeVm); ViewResult result = (ViewResult)await this._controller.BillsAndOutgoingsPost(vm, "testing"); Assert.AreEqual("BillsAndOutgoings", result.ViewName); Assert.AreEqual(vm, result.Model); Assert.AreEqual(monthlyIncomeVm, vm.IncomeSummary); Assert.IsTrue(vm.EnabledPartialSave); }
public void ConvertTest_SourceNull() { BillsAndOutgoingsVm source = null; IncomeAndExpenditure destination = Utilities.CreateDefaultTestIAndE(); IncomeAndExpenditure expected = Utilities.DeepCopy(destination); expected.Rental = 0; expected.RentalArrears = 0; expected.RentalFrequency = null; expected.CCJs = 0; expected.CCJsArrears = 0; expected.CCJsFrequency = null; expected.ChildMaintenance = 0; expected.ChildMaintenanceArrears = 0; expected.ChildMaintenanceFrequency = null; expected.CouncilTax = 0; expected.CouncilTaxArrears = 0; expected.CouncilTaxFrequency = null; expected.CourtFines = 0; expected.CourtFinesArrears = 0; expected.CourtFinesFrequency = null; expected.Electricity = 0; expected.ElectricityArrears = 0; expected.ElectricityFrequency = null; expected.Gas = 0; expected.GasArrears = 0; expected.GasFrequency = null; expected.Mortgage = 0; expected.MortgageArrears = 0; expected.MortgageFrequency = null; expected.OtherUtilities = 0; expected.OtherUtilitiesArrears = 0; expected.OtherUtilitiesFrequency = null; expected.Rent = 0; expected.RentArrears = 0; expected.RentFrequency = null; expected.SecuredLoans = 0; expected.SecuredloansArrears = 0; expected.SecuredLoansFrequency = null; expected.TvLicence = 0; expected.TvLicenceArrears = 0; expected.TvLicenceFrequency = null; expected.Water = 0; expected.WaterArrears = 0; expected.WaterFrequency = null;; IncomeAndExpenditure result = _converter.Convert(source, destination, null); //Check result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); }
public async Task <IActionResult> BillsAndOutgoingsPost(BillsAndOutgoingsVm viewModel, string submit) { if (submit == "saveforlater") { viewModel.PartialSavedEvent = true; } var id = RouteData.Values["id"]; if (id == null) { return(RedirectToAction("Index", "MyAccounts")); } Guid guid = Guid.Parse(id.ToString()); ApplicationSessionState.CheckSessionStatus(id.ToString()); viewModel.EnabledPartialSave = _portalSettings.Features.EnablePartialSave && LoggedInUser.IsLoggedInUser; IncomeAndExpenditure incomeAndExpenditure = ApplicationSessionState.GetIncomeAndExpenditure(guid); incomeAndExpenditure = _mapper.Map(viewModel, incomeAndExpenditure); ApplicationSessionState.SaveIncomeAndExpenditure(incomeAndExpenditure, guid); MonthlyIncome incomeSummary = _calculatorService.CalculateMonthlyIncome(incomeAndExpenditure); if (!ModelState.IsValid) { viewModel.IncomeSummary = _mapper.Map <MonthlyIncome, MonthlyIncomeVm>(incomeSummary); return(View("BillsAndOutgoings", viewModel)); } string lowellReference = ApplicationSessionState.GetLowellReferenceFromSurrogate(guid); if (submit == "saveforlater" && LoggedInUser.IsLoggedInUser && _portalSettings.Features.EnablePartialSave) { bool isPartialSaved = await PartialSave(incomeAndExpenditure, lowellReference); viewModel.PartialSavedIAndE = isPartialSaved; viewModel.HasErrorPartialSavedIAndE = !isPartialSaved; return(View("BillsAndOutgoings", viewModel)); } return(RedirectToAction("Expenditure", new { id })); }
public void BillsAndOutgoingsTest_NullIandE() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._portalSettings.Features.EnablePartialSave = true; this._sessionState.Setup(x => x.CheckSessionStatus(id)); BillsAndOutgoingsVm vm = new BillsAndOutgoingsVm(); IncomeAndExpenditure iAndE = null; this._sessionState.Setup(x => x.GetIncomeAndExpenditure(Guid.Parse(id))).Returns(iAndE); ViewResult result = (ViewResult)this._controller .BillsAndOutgoings(vm); Assert.AreEqual(vm, result.Model); Assert.IsTrue(vm.EnabledPartialSave); }
public void BillsAndOutgoingsTest() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._portalSettings.Features.EnablePartialSave = true; this._sessionState.Setup(x => x.CheckSessionStatus(id)); BillsAndOutgoingsVm vm = new BillsAndOutgoingsVm() { IncomeSummary = new MonthlyIncomeVm() { Benefits = 100, Other = 200, Pension = 300, Salary = 400, Total = 1000 } }; IncomeAndExpenditure iAndE = new IncomeAndExpenditure() { HousingStatus = "housing-status", EmploymentStatus = "employment-status" }; this._sessionState.Setup(x => x.GetIncomeAndExpenditure(Guid.Parse(id))).Returns(iAndE); this._mapper.Setup(x => x.Map(iAndE, vm)).Returns(vm); this._gtmService.Setup(x => x.RaiseBudgetCalculatorIncomeEvent( vm, this._caseflowUserId, "employment-status", "housing-status", 1000)); ViewResult result = (ViewResult)this._controller .BillsAndOutgoings(vm); Assert.AreEqual(vm, result.Model); Assert.IsTrue(vm.EnabledPartialSave); }
public async Task BillsAndOutgoingsPostTest_SaveForLater() { string id = Guid.NewGuid().ToString(); this._controller.RouteData.Values.Add("id", id); this._portalSettings.Features.EnablePartialSave = true; IncomeAndExpenditure iAndE = new IncomeAndExpenditure(); BillsAndOutgoingsVm vm = new BillsAndOutgoingsVm(); MonthlyIncome monthlyIncome = new MonthlyIncome(); MonthlyIncomeVm monthlyIncomeVm = new MonthlyIncomeVm(); this._sessionState.Setup(x => x.CheckSessionStatus(id)); 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._calculatorService.Setup(x => x.CalculateMonthlyIncome(iAndE)).Returns(monthlyIncome); string lowellReference = "123456789"; this._sessionState.Setup(x => x.GetLowellReferenceFromSurrogate(Guid.Parse(id))) .Returns(lowellReference); this._budgetCalculatorService.Setup(x => x.PartiallySaveIncomeAndExpenditure( iAndE, lowellReference, Guid.Parse(this._caseflowUserId))).Returns(Task.FromResult(true)); ViewResult result = (ViewResult)await this._controller .BillsAndOutgoingsPost(vm, "saveforlater"); Assert.AreEqual("BillsAndOutgoings", result.ViewName); Assert.AreEqual(vm, result.Model); Assert.IsTrue(vm.EnabledPartialSave); Assert.IsTrue(vm.PartialSavedEvent); Assert.IsTrue(vm.PartialSavedIAndE); Assert.IsFalse(vm.HasErrorPartialSavedIAndE); }
public void ConvertTest_DestinationNull() { 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); MonthlyIncome monthlyIncome = new MonthlyIncome(); MonthlyIncomeVm monthlyIncomeVm = new MonthlyIncomeVm() { Benefits = 100, Other = 200, Pension = 300, Salary = 400, Total = 1000 }; MonthlyOutgoings monthlyOutgoings = new MonthlyOutgoings(); MonthlyOutgoingsVm monthlyOutgoingsVm = new MonthlyOutgoingsVm() { Expenditures = 123, HouseholdBills = 456, Total = 789 }; BillsAndOutgoingsVm destination = null; BillsAndOutgoingsVm expected = new BillsAndOutgoingsVm(); expected.Mortgage = new OutgoingSourceVm() { Amount = 100, ArrearsAmount = 10, Frequency = "monthly", InArrears = true }; expected.ApplianceOrFurnitureRental = new OutgoingSourceVm() { Amount = 150, ArrearsAmount = 0, Frequency = "weekly", InArrears = false }; expected.Electric = new OutgoingSourceVm() { Amount = 200, ArrearsAmount = 20, Frequency = "fortnightly", InArrears = true }; expected.Ccjs = new OutgoingSourceVm() { Amount = 250, ArrearsAmount = 0, Frequency = "monthly", InArrears = false }; expected.ChildMaintenance = new OutgoingSourceVm() { Amount = 300, ArrearsAmount = 30, Frequency = "weekly", InArrears = true }; expected.CouncilTax = new OutgoingSourceVm() { Amount = 350, ArrearsAmount = 0, Frequency = "fortnightly", InArrears = false }; expected.CourtFines = new OutgoingSourceVm() { Amount = 400, ArrearsAmount = 40, Frequency = "monthly", InArrears = true }; expected.Gas = new OutgoingSourceVm() { Amount = 450, ArrearsAmount = 0, Frequency = "weekly", InArrears = false }; expected.OtherFuel = new OutgoingSourceVm() { Amount = 500, ArrearsAmount = 50, Frequency = "fortnightly", InArrears = true }; expected.Rent = new OutgoingSourceVm() { Amount = 550, ArrearsAmount = 0, Frequency = "monthly", InArrears = false }; expected.SecuredLoan = new OutgoingSourceVm() { Amount = 600, ArrearsAmount = 60, Frequency = "weekly", InArrears = true }; expected.TvLicense = new OutgoingSourceVm() { Amount = 650, ArrearsAmount = 0, Frequency = "fortnightly", InArrears = false }; expected.Water = new OutgoingSourceVm() { Amount = 700, ArrearsAmount = 70, Frequency = "monthly", InArrears = true }; expected.IncomeSummary = monthlyIncomeVm; expected.OutgoingSummary = monthlyOutgoingsVm; _calculatorService.Setup(x => x.CalculateMonthlyIncome(source)).Returns(monthlyIncome); _calculatorService.Setup(x => x.CalculateMonthlyOutgoings(source)).Returns(monthlyOutgoings); _mapper.Setup(x => x.Map <MonthlyIncomeVm>(monthlyIncome)).Returns(monthlyIncomeVm); _mapper.Setup(x => x.Map <MonthlyOutgoingsVm>(monthlyOutgoings)).Returns(monthlyOutgoingsVm); BillsAndOutgoingsVm 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)); }
public void ConvertTest_SourceNull() { IncomeAndExpenditure source = null; BillsAndOutgoingsVm destination = Utilities.CreateDefaultTestBillsAndOutgoingsVm(); BillsAndOutgoingsVm expected = Utilities.DeepCopy(destination); MonthlyIncome monthlyIncome = new MonthlyIncome(); MonthlyIncomeVm monthlyIncomeVm = new MonthlyIncomeVm() { Benefits = 100, Other = 200, Salary = 300, Pension = 400, Total = 1000 }; MonthlyOutgoings monthlyOutgoings = new MonthlyOutgoings(); MonthlyOutgoingsVm monthlyOutgoingsVm = new MonthlyOutgoingsVm() { Expenditures = 1000, HouseholdBills = 2000, Total = 3000 }; _calculatorService.Setup(x => x.CalculateMonthlyIncome(It.IsAny <IncomeAndExpenditure>())) .Returns(monthlyIncome); _mapper.Setup(x => x.Map <MonthlyIncomeVm>(monthlyIncome)).Returns(monthlyIncomeVm); _calculatorService.Setup(x => x.CalculateMonthlyOutgoings(It.IsAny <IncomeAndExpenditure>())) .Returns(monthlyOutgoings); _mapper.Setup(x => x.Map <MonthlyOutgoingsVm>(monthlyOutgoings)).Returns(monthlyOutgoingsVm); expected.ApplianceOrFurnitureRental.Amount = 0; expected.ApplianceOrFurnitureRental.ArrearsAmount = 0; expected.ApplianceOrFurnitureRental.Frequency = null; expected.ApplianceOrFurnitureRental.InArrears = false; expected.Ccjs.Amount = 0; expected.Ccjs.ArrearsAmount = 0; expected.Ccjs.Frequency = null; expected.Ccjs.InArrears = false; expected.ChildMaintenance.Amount = 0; expected.ChildMaintenance.ArrearsAmount = 0; expected.ChildMaintenance.Frequency = null; expected.ChildMaintenance.InArrears = false; expected.CouncilTax.Amount = 0; expected.CouncilTax.ArrearsAmount = 0; expected.CouncilTax.Frequency = null; expected.CouncilTax.InArrears = false; expected.CourtFines.Amount = 0; expected.CourtFines.ArrearsAmount = 0; expected.CourtFines.Frequency = null; expected.CourtFines.InArrears = false; expected.Electric.Amount = 0; expected.Electric.ArrearsAmount = 0; expected.Electric.Frequency = null; expected.Electric.InArrears = false; expected.Gas.Amount = 0; expected.Gas.ArrearsAmount = 0; expected.Gas.Frequency = null; expected.Gas.InArrears = false; expected.IncomeSummary = monthlyIncomeVm; expected.OutgoingSummary = monthlyOutgoingsVm; expected.Mortgage.Amount = 0; expected.Mortgage.ArrearsAmount = 0; expected.Mortgage.Frequency = null; expected.Mortgage.InArrears = false; expected.OtherFuel.Amount = 0; expected.OtherFuel.ArrearsAmount = 0; expected.OtherFuel.Frequency = null; expected.OtherFuel.InArrears = false; expected.Rent.Amount = 0; expected.Rent.ArrearsAmount = 0; expected.Rent.Frequency = null; expected.Rent.InArrears = false; expected.SecuredLoan.Amount = 0; expected.SecuredLoan.ArrearsAmount = 0; expected.SecuredLoan.Frequency = null; expected.SecuredLoan.InArrears = false; expected.TvLicense.Amount = 0; expected.TvLicense.ArrearsAmount = 0; expected.TvLicense.Frequency = null; expected.TvLicense.InArrears = false; expected.Water.Amount = 0; expected.Water.ArrearsAmount = 0; expected.Water.Frequency = null; expected.Water.InArrears = false; BillsAndOutgoingsVm result = _converter.Convert(source, destination, null); //Check result is as expected Assert.IsTrue(Utilities.DeepCompare(expected, result)); }
public void ConvertTest() { BillsAndOutgoingsVm source = new BillsAndOutgoingsVm() { Mortgage = new OutgoingSourceVm() { Amount = 100, ArrearsAmount = 10, Frequency = "monthly", InArrears = true }, ApplianceOrFurnitureRental = new OutgoingSourceVm() { Amount = 150, ArrearsAmount = 0, Frequency = "weekly", InArrears = false }, Electric = new OutgoingSourceVm() { Amount = 200, ArrearsAmount = 20, Frequency = "fortnightly", InArrears = true }, Ccjs = new OutgoingSourceVm() { Amount = 250, ArrearsAmount = 0, Frequency = "monthly", InArrears = false }, ChildMaintenance = new OutgoingSourceVm() { Amount = 300, ArrearsAmount = 30, Frequency = "weekly", InArrears = true }, CouncilTax = new OutgoingSourceVm() { Amount = 350, ArrearsAmount = 0, Frequency = "fortnightly", InArrears = false }, CourtFines = new OutgoingSourceVm() { Amount = 400, ArrearsAmount = 40, Frequency = "monthly", InArrears = true }, Gas = new OutgoingSourceVm() { Amount = 450, ArrearsAmount = 0, Frequency = "weekly", InArrears = false }, OtherFuel = new OutgoingSourceVm() { Amount = 500, ArrearsAmount = 50, Frequency = "fortnightly", InArrears = true }, Rent = new OutgoingSourceVm() { Amount = 550, ArrearsAmount = 0, Frequency = "monthly", InArrears = false }, SecuredLoan = new OutgoingSourceVm() { Amount = 600, ArrearsAmount = 60, Frequency = "weekly", InArrears = true }, TvLicense = new OutgoingSourceVm() { Amount = 650, ArrearsAmount = 0, Frequency = "fortnightly", InArrears = false }, Water = new OutgoingSourceVm() { Amount = 700, ArrearsAmount = 70, Frequency = "monthly", InArrears = true }, EnabledPartialSave = true, HasErrorPartialSavedIAndE = false, GtmEvents = new List <GtmEvent>() { new GtmEvent() { account_ref = "123456789" } }, PartialSavedEvent = true, PartialSavedIAndE = false, IncomeSummary = new MonthlyIncomeVm() { Benefits = 12, Other = 34, Pension = 56, Salary = 78, Total = 90 }, OutgoingSummary = new MonthlyOutgoingsVm() { Expenditures = 123, HouseholdBills = 456, Total = 789 } }; //Create a copy of source for later BillsAndOutgoingsVm sourceCopy = Utilities.DeepCopy(source); IncomeAndExpenditure destination = Utilities.CreateDefaultTestIAndE(); IncomeAndExpenditure expected = Utilities.DeepCopy(destination); expected.Mortgage = 100; expected.MortgageArrears = 10; expected.MortgageFrequency = "monthly"; expected.Rental = 150; expected.RentalArrears = 0; expected.RentalFrequency = "weekly"; expected.Electricity = 200; expected.ElectricityArrears = 20; expected.ElectricityFrequency = "fortnightly"; expected.CCJs = 250; expected.CCJsArrears = 0; expected.CCJsFrequency = "monthly"; expected.ChildMaintenance = 300; expected.ChildMaintenanceArrears = 30; expected.ChildMaintenanceFrequency = "weekly"; expected.CouncilTax = 350; expected.CouncilTaxArrears = 0; expected.CouncilTaxFrequency = "fortnightly"; expected.CourtFines = 400; expected.CourtFinesArrears = 40; expected.CourtFinesFrequency = "monthly"; expected.Gas = 450; expected.GasArrears = 0; expected.GasFrequency = "weekly"; expected.OtherUtilities = 500; expected.OtherUtilitiesArrears = 50; expected.OtherUtilitiesFrequency = "fortnightly"; expected.Rent = 550; expected.RentArrears = 0; expected.RentFrequency = "monthly"; expected.SecuredLoans = 600; expected.SecuredloansArrears = 60; expected.SecuredLoansFrequency = "weekly"; expected.TvLicence = 650; expected.TvLicenceArrears = 0; expected.TvLicenceFrequency = "fortnightly"; expected.Water = 700; expected.WaterArrears = 70; expected.WaterFrequency = "monthly"; IncomeAndExpenditure 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)); }