public void RetrieveCustomerServiceTest()
        {
            Customer customer = ObjectMother.GetCustomer();

            var repositoryFake = new Mock<ICustomerRepository>();
            repositoryFake.Setup(r => r.Get(1)).Returns(customer);

            ICustomerService service = new CustomerService(repositoryFake.Object);

            var customerFake = service.Retrieve(1);

            repositoryFake.Verify(r => r.Get(1));
            Assert.IsNotNull(customerFake);
        }
        public void DeleteCustomerServiceTest()
        {
            Customer customer = null;

            var repositoryFake = new Mock<ICustomerRepository>();
            repositoryFake.Setup(r => r.Delete(1)).Returns(customer);

            ICustomerService service = new CustomerService(repositoryFake.Object);

            var customerFake = service.Delete(1);

            repositoryFake.Verify(r => r.Delete(1));
            Assert.IsNull(customerFake);
        }
        public void UpdateCustomerServiceValidationAndPersistenceTest()
        {
            Customer customer = ObjectMother.GetCustomer();

            var repositoryFake = new Mock<ICustomerRepository>();
            repositoryFake.Setup(r => r.Update(customer)).Returns(customer);

            var customerFake = new Mock<Customer>();
            customerFake.As<IObjectValidation>().Setup(b => b.Validate());

            ICustomerService service = new CustomerService(repositoryFake.Object);

            service.Update(customerFake.Object);

            customerFake.As<IObjectValidation>().Verify(b => b.Validate());
            repositoryFake.Verify(r => r.Update(customerFake.Object));
        }