Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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)));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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));
        }