public void ShouldUpdateCustomer()
        {
            ICustomerAdapter adapter = Substitute.For<ICustomerAdapter>();
            adapter.UpdateCustomer(Arg.Any<CustomerData>());
            using (CustomersController controller = new CustomersController(adapter))
            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Put, "~/api/customers"))
            {
                request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                CustomerData data = new CustomerData();
                HttpResponseMessage message = controller.Put(request, data);

                Assert.AreEqual(HttpStatusCode.OK, message.StatusCode, "The wrong status code was returned.");
                Assert.IsInstanceOfType(message.Content, typeof(ObjectContent), "The content was not the serialized result.");
                ObjectContent content = (ObjectContent)message.Content;
                Assert.AreSame("The customer was updated.", content.Value, "The wrong object was returned.");

                adapter.Received().UpdateCustomer(data);
            }
        }