public void GetVeryImportantCustomersShouldReturnCorrectData()
        {
            // Arrange
            var events = new RecordedRepositoryEvents();
            var repository = new InMemoryRepository(events);
            var customerSales = Enumerable.Repeat(EntityGenerator.Create<AggregateCustomerSales>(), 20).ToList();
            customerSales.ForEach(repository.Add);

            // Act
            var ordersController = new OrdersController(repository);
            var results = ordersController.GetVeryImportantCustomers().Result;

            // Assert
            results.Count().ShouldEqual(10);
            var allStrategies = events.QueryEvents.Single().GetQueryStrategies();

            // check the strategies used in this call
            allStrategies.Count().ShouldEqual(2);
            allStrategies.First().GetType().ShouldEqual(typeof(DefaultSpecificationQueryStrategy<AggregateCustomerSales>));
            allStrategies.Second().GetType().ShouldEqual(typeof(FindVeryImportantCustomersQueryStrategy));
        }