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); }
public async Task ThrowsForQueryWithThrowSetupMatchingPredicateAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupExceptionFor <TestQueryB>(q => q.Number == 1337, new AbandonedMutexException()); // Act + Assert await Assert.ThrowsAsync <AbandonedMutexException>(async() => await queryProcessor.ExecuteAsync(new TestQueryB(1337))); }
public async Task DoesNotThrowIfQueryDoesntMatchPredicateAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupExceptionFor <TestQueryB>(q => q.Number == 1337, new AbandonedMutexException()); // Act var result = await queryProcessor.ExecuteAsync(new TestQueryB(9999)); // Assert result.ShouldBe(default(int)); }
public async Task ReturnsDefaultValueIfQueryDoesntMatchPredicateAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupResultFor <TestQueryB>(q => q.Number == 1337, 1234); // Act var result = await queryProcessor.ExecuteAsync(new TestQueryB(9999)); // Assert result.ShouldBe(default(int)); }
public async Task ReturnsComputedValueThatWasSetUpForQueryWithPredicateAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupResultFor <TestQueryB>(q => q.Number == 1337, q => (int)q.Number); // Act var result = await queryProcessor.ExecuteAsync(new TestQueryB(1337)); // Assert result.ShouldBe(1337); }
public async Task ReturnsValueThatWasSetUpForQueryAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupResultFor <TestQueryB>(1234); // Act var result = await queryProcessor.ExecuteAsync(new TestQueryB(1337)); // Assert result.ShouldBe(1234); }
public async Task ReturnsDefaultValueOfQueriesWithoutSetupAsync() { // Arrange var queryProcessor = new FakeQueryProcessor(); queryProcessor.SetupResultFor <TestQueryB>(1234); // Act var result = await queryProcessor.ExecuteAsync(new TestQueryA(Guid.NewGuid())); // Assert result.ShouldBe(default(Guid)); }