public void TestDeleteCustomerConfirmPrompt() { IRepository <Customer> repo = new CustomerRepository(); repo.Insert(new Customer() { Firstname = "Delete", Surname = "Me" }); repo.Insert(new Customer() { Firstname = "Don't Delete", Surname = "Me" }); ISalesModel model = new SalesModel(repo); model.CurrentCustomer = model.GetAllCustomers()[0]; // setup the view, so that the displayed question to confirm to delete // the custoemr is confirmed. var view = new Mock <ISalesFormView>(); view.Setup(x => x.DisplayQuestion(It.IsAny <string>())).Returns(true); ISalesFormController controller = new SalesFormController(view.Object, model); controller.DeleteCustomer(); // verify the view was notified for confirmation to delete the customer view.Verify(x => x.DisplayQuestion(It.IsAny <string>()), Times.Once); view.Verify(x => x.ClearCustomerInfo(), Times.AtLeastOnce); // confirm there is only one customer in the repository now. Assert.IsTrue(model.GetAllCustomers().Count == 1); }
public void TestDeleteCustomerDeclinePrompt() { IRepository <Customer> repo = new CustomerRepository(); repo.Insert(new Customer() { Firstname = "Delete", Surname = "Me" }); ISalesModel model = new SalesModel(repo); model.CurrentCustomer = model.GetAllCustomers()[0]; var view = new Mock <ISalesFormView>(); view.Setup(x => x.DisplayQuestion(It.IsAny <string>())).Returns(false); ISalesFormController controller = new SalesFormController(view.Object, model); controller.DeleteCustomer(); view.Verify(x => x.DisplayQuestion(It.IsAny <string>()), Times.Once); Assert.IsTrue(model.GetAllCustomers().Count == 1); }