public async Task ReturnsExecutedQueriesAsync() { // Arrange var guid = Guid.NewGuid(); var queryProcessor = new FakeQueryProcessor(); // Act await queryProcessor.ExecuteAsync(new TestQueryA(guid)); await queryProcessor.ExecuteAsync(new TestQueryB(100)); await queryProcessor.ExecuteAsync(new TestQueryB(200)); await queryProcessor.ExecuteAsync(new TestQueryB(300)); // Assert queryProcessor.GetExecutedQueries().Count().ShouldBe(4); queryProcessor.GetExecutedQueries <TestQueryA>().Count().ShouldBe(1); queryProcessor.GetExecutedQueries <TestQueryB>().Count().ShouldBe(3); queryProcessor.GetExecutedQueries <TestQueryC>().Count().ShouldBe(0); queryProcessor.GetExecutedQueries <TestQueryA>().Single().Id.ShouldBe(guid); queryProcessor.GetExecutedQueries <TestQueryB>().ElementAt(0).Number.ShouldBe(100); queryProcessor.GetExecutedQueries <TestQueryB>().ElementAt(1).Number.ShouldBe(200); queryProcessor.GetExecutedQueries <TestQueryB>().ElementAt(2).Number.ShouldBe(300); }