public async Task DeleteAddressGet_ReturnsViewModel( [Frozen] Mock <ICustomerService> customerService, DeleteCustomerAddressViewModel viewModel, [Greedy] CustomerController sut ) { //Arrange customerService.Setup(x => x.GetCustomerAddressForDelete( It.IsAny <string>(), It.IsAny <string>() )) .ReturnsAsync(viewModel); //Act var actionResult = await sut.DeleteAddress( viewModel.AccountNumber, viewModel.AddressType ); //Assert var viewResult = actionResult.Should().BeAssignableTo <ViewResult>().Subject; viewResult.Model.Should().Be(viewModel); customerService.Verify(x => x.GetCustomerAddressForDelete( It.IsAny <string>(), It.IsAny <string>()) ); }
public async Task <IActionResult> DeleteAddress(DeleteCustomerAddressViewModel viewModel) { if (ModelState.IsValid) { await customerService.DeleteAddress( viewModel.AccountNumber, viewModel.AddressType ); return(RedirectToAction("Detail", new { viewModel.AccountNumber })); } return(View(viewModel)); }
public async Task DeleteAddressPost_InvalidModelState_ReturnsViewModel( DeleteCustomerAddressViewModel viewModel, [Greedy] CustomerController sut ) { //Arrange sut.ModelState.AddModelError("AccountNumber", "AW00000001"); //Act var actionResult = await sut.DeleteAddress(viewModel); //Assert var viewResult = actionResult.Should().BeAssignableTo <ViewResult>().Subject; viewResult.Model.Should().Be(viewModel); }
public async Task DeleteAddressPost_ValidModelState_ReturnsRedirect( [Frozen] Mock <ICustomerService> customerService, DeleteCustomerAddressViewModel viewModel, [Greedy] CustomerController sut ) { //Act var actionResult = await sut.DeleteAddress(viewModel); //Assert customerService.Verify(x => x.DeleteAddress( It.IsAny <string>(), It.IsAny <string>() )); 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.AccountNumber); }