public void Edit_Post_Saves_A_Valid_Customer_And_Redirects_To_Details_Of_The_Customer() { /* * Arrange * 1º - Create a dummy list of customers * 2º - Initialize stub of SICustomerManagementService * 3º - Create controller to test */ Customer customer = new Customer() { CustomerCode = "A0001" }; IList<Customer> customers = new List<Customer>(); bool changeCustomerWasCalled = false; SICustomerManagementService customerService = new SICustomerManagementService(); customerService.ChangeCustomerCustomer = x => changeCustomerWasCalled = true; CustomerController controller = new CustomerController(customerService); //Act RedirectToRouteResult result = controller.Edit(customer) as RedirectToRouteResult; //Assert Assert.IsNotNull(result); Assert.IsTrue(changeCustomerWasCalled); Assert.AreEqual("Details", result.RouteValues["action"]); //Asp.Net MVC convention to say "Same Controller" Assert.IsNull(result.RouteValues["controller"]); Assert.AreEqual("A0001", result.RouteValues["customerCode"]); }
public void Edit_Post_Returns_Edit_View_With_An_Invalid_Customer() { /* * Arrange * 1º - Create a dummy list of customers * 2º - Initialize stub of SICustomerManagementService * 3º - Create controller to test */ Customer customer = new Customer() { CustomerCode = "A0001" }; SICustomerManagementService customerService = new SICustomerManagementService(); CustomerController controller = new CustomerController(customerService); ModelState state = new ModelState(); state.Value = new ValueProviderResult("A0001", "A0001", CultureInfo.CurrentCulture); state.Errors.Add("Invalid Customer Code"); controller.ModelState.Add("CustomerCode", state); //Act ViewResult result = controller.Edit(customer) as ViewResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("A0001", result.ViewData.ModelState["CustomerCode"].Value.AttemptedValue); Assert.AreEqual("", result.ViewName); }
public void Edit_Get_Returns_The_Correct_Customer_To_Edit() { /* * Arrange * 1º - Create a dummy list of customers * 2º - Initialize stub of SICustomerManagementService * 3º - Create controller to test */ Customer customer = new Customer() { CustomerCode = "A0001" }; IList<Customer> customers = new List<Customer>(); SICustomerManagementService customerService = new SICustomerManagementService(); customerService.FindCustomerByCodeString = x => customer; CustomerController controller = new CustomerController(customerService); //Act ViewResult result = controller.Edit("A0001") as ViewResult; //Assert Assert.IsNotNull(result); Customer model = result.ViewData.Model as Customer; Assert.IsNotNull(model); Assert.AreSame(customer, model); Assert.AreEqual("", result.ViewName); }