public async Task <IActionResult> EditIndividual(EditIndividualCustomerViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                await customerService.UpdateIndividual(viewModel.Customer);

                return(RedirectToAction("Detail", new { viewModel.Customer.AccountNumber }));
            }

            return(View(viewModel));
        }
Beispiel #2
0
            public async Task EditIndividualPost_ValidModelState_ReturnsRedirect(
                EditIndividualCustomerViewModel viewModel,
                [Greedy] CustomerController sut
                )
            {
                //Act
                var actionResult = await sut.EditIndividual(viewModel);

                //Assert
                var redirectResult = actionResult.Should().BeAssignableTo <RedirectToActionResult>().Subject;

                redirectResult.ActionName.Should().Be("Detail");
                redirectResult.RouteValues.Count.Should().Be(1);
                redirectResult.RouteValues.ContainsKey("AccountNumber");
                redirectResult.RouteValues.Values.Contains(viewModel.Customer.AccountNumber);
            }
Beispiel #3
0
            public async Task EditIndividualPost_InvalidModelState_ReturnsViewModel(
                EditIndividualCustomerViewModel viewModel,
                [Greedy] CustomerController sut
                )
            {
                //Arrange
                sut.ModelState.AddModelError("AccountNumber", "AW00000001");

                //Act
                var actionResult = await sut.EditIndividual(viewModel);

                //Assert
                var viewResult = actionResult.Should().BeAssignableTo <ViewResult>().Subject;

                viewResult.Model.Should().Be(viewModel);
            }
        public async Task <EditIndividualCustomerViewModel> GetIndividualCustomerForEdit(string accountNumber)
        {
            logger.LogInformation("GetIndividualCustomerForEdit called");

            logger.LogInformation("Getting customer for {AccountNumber}", accountNumber);
            var customer = await customerApiClient.GetCustomerAsync <ApiClients.CustomerApi.Models.GetCustomer.IndividualCustomer>(
                accountNumber
                );

            logger.LogInformation("Retrieved customer {@Customer}", customer);

            var vm = new EditIndividualCustomerViewModel
            {
                Customer        = mapper.Map <IndividualCustomerViewModel>(customer),
                Territories     = await GetTerritories(true),
                EmailPromotions = GetEmailPromotions()
            };

            return(vm);
        }
Beispiel #5
0
            public async Task EditIndividualGet_ReturnsViewModel(
                [Frozen] Mock <ICustomerService> customerService,
                EditIndividualCustomerViewModel viewModel,
                [Greedy] CustomerController sut
                )
            {
                //Arrange
                customerService.Setup(x => x.GetIndividualCustomerForEdit(
                                          It.IsAny <string>()
                                          ))
                .ReturnsAsync(viewModel);

                //Act
                var actionResult = await sut.EditIndividual("AW00000001");

                //Assert
                var viewResult = actionResult.Should().BeAssignableTo <ViewResult>().Subject;

                viewResult.Model.Should().Be(viewModel);
            }