public void IncomeReport_Should_Return_False_When_Validation_Fails() { //Given ReportController controller = new ReportController(null, null); // GET page to get empty view model ReportFamilyIncomeViewModel notChangedViewModel = (controller.FamilyIncome() as ViewResult).Model as ReportFamilyIncomeViewModel; //When ViewResult result = controller.FamilyIncome(notChangedViewModel) as ViewResult; //Then Assert.NotNull(result); Assert.NotNull(result.Model); Assert.False((result.Model as ReportFamilyIncomeViewModel).IsSuccess); Assert.NotEmpty((result.Model as ReportFamilyIncomeViewModel).ValidationErrorMessage); }
public void IncomeReport_Should_Redirect_To_Success_When_Validation_Passes() { //Given var mock = new Mock <IReportRepository>(); mock.Setup(rr => rr.Add(It.IsAny <string>(), It.IsAny <object>(), ReportType.FamilyIncome)); ReportController controller = new ReportController(mock.Object, null); controller.ControllerContext = Helper.CreateControllerContextWithUserClaim("*****@*****.**"); // GET page to get empty view model ReportFamilyIncomeViewModel changedViewModel = (controller.FamilyIncome() as ViewResult).Model as ReportFamilyIncomeViewModel; //When changedViewModel.SelectedIncomeLevel = IncomeLevelType.BelowThen2000; RedirectToActionResult result = controller.FamilyIncome(changedViewModel) as RedirectToActionResult; //Then Assert.NotNull(result); Assert.Same("Success", result.ActionName); mock.Verify(rr => rr.Add(It.IsAny <string>(), It.IsAny <object>(), ReportType.FamilyIncome), Times.Once); }
public IActionResult FamilyIncome(ReportFamilyIncomeViewModel viewModel) { if (viewModel.SelectedIncomeLevel == IncomeLevelType.BelowThen2000 || viewModel.SelectedIncomeLevel == IncomeLevelType.Between3500And2000 || viewModel.SelectedIncomeLevel == IncomeLevelType.AboveThen3500) { viewModel.ValidationErrorMessage = null; viewModel.IsSuccess = true; this.ReportRepository.Add( userId: this.GetUserEmail(), data: viewModel.SelectedIncomeLevel, reportType: ReportType.FamilyIncome); return(RedirectToAction("Success")); } else { viewModel.ValidationErrorMessage = SharedStrings.MissingIncomeLevelValidationError; } return(View(viewModel)); }
public IActionResult FamilyIncome() { var vm = new ReportFamilyIncomeViewModel(); return(View(vm)); }