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)); }
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); }
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); }
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); }