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