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)); }