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

                Assert.AreEqual(HttpStatusCode.Created, 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(added, content.Value, "The wrong object was returned.");

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