public void ShouldGetAllCustomers()
        {
            ICustomerAdapter adapter = Substitute.For<ICustomerAdapter>();
            IEnumerable<CustomerData> data = new List<CustomerData>() { new CustomerData() };
            adapter.GetCustomers().Returns(data);
            using (CustomersController controller = new CustomersController(adapter))
            using (HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "~/api/customers"))
            {
                request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());
                HttpResponseMessage response = controller.GetAll(request);
                Assert.IsInstanceOfType(response.Content, typeof(ObjectContent<CustomerData[]>), "An array of customer data wasn't returned.");

                ObjectContent<CustomerData[]> content = (ObjectContent<CustomerData[]>)response.Content;
                CustomerData[] results = (CustomerData[])content.Value;
                Assert.AreEqual(1, results.Length, "There should have been one customer.");
                Assert.AreSame(data.First(), results[0], "The wrong customer was returned.");

                adapter.Received().GetCustomers();
            }
        }