예제 #1
0
    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);
    }
예제 #2
0
    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);
    }
예제 #3
0
        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));
        }
예제 #4
0
        public IActionResult FamilyIncome()
        {
            var vm = new ReportFamilyIncomeViewModel();

            return(View(vm));
        }