コード例 #1
0
            public void ShouldCheckForCorrectQueryType()
            {
                var queryHandler = new TestQueryHandler(_testOutputHelper);
                var registration = new QueryHandlerRegistration();

                registration.Register(() => (IQueryHandler <QuerySomethingWithDelay, string>)queryHandler);

                QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomethingWithDelay, string>();

                queryHandlerDelegate.Should().NotBeNull();

                const string data = nameof(ShouldCheckForCorrectQueryType);

                Func <Task> action = async() =>
                {
                    try
                    {
                        await queryHandlerDelegate.Invoke(new QuerySomething(data));
                    }
                    catch (Exception ex)
                    {
                        _testOutputHelper.WriteLine(ex.ToString());
                        throw;
                    }
                };

                action.Should().Throw <ArgumentException>();
            }
コード例 #2
0
            public Task Should_Check_For_Correct_Query_Type()
            {
                return(Assert.ThrowsAnyAsync <ArgumentException>(async() =>
                {
                    var queryHandler = new TestQueryHandler(_testOutputHelper);
                    var registration = new QueryHandlerRegistration();
                    registration.Register(() => (IQueryHandler <QuerySomethingWithDelay, string>)queryHandler);

                    QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomethingWithDelay, string>();

                    Assert.NotNull(queryHandlerDelegate);

                    const string data = nameof(Should_Check_For_Correct_Query_Type);

                    try
                    {
                        await queryHandlerDelegate.Invoke(new QuerySomething(data));
                    }
                    catch (Exception ex)
                    {
                        _testOutputHelper.WriteLine(ex.ToString());
                        throw;
                    }
                }));
            }
コード例 #3
0
            public async Task ShouldRegisterAllQueryHandlers()
            {
                var queryHandler = new TestQueryHandler(_testOutputHelper);
                var registration = new QueryHandlerRegistration();

                registration.Register(() => (IQueryAsyncHandler <QuerySomething, string>)queryHandler);

                QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>();

                var query = new QuerySomething(nameof(ShouldRegisterAllQueryHandlers));

                var result1 = await queryHandler.HandleAsync(query);

                var result2 = await queryHandlerDelegate.Invoke(query);

                result1.Should().Be(result2);
            }
コード例 #4
0
            public async Task ShouldInvokeTheActualRegisteredQueryHandler()
            {
                var queryHandler = new TestQueryHandler(_testOutputHelper);

                var registration = new QueryHandlerRegistration();

                registration.Register(() => (IQueryHandler <QuerySomething, string>)queryHandler);

                QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>();

                queryHandlerDelegate.Should().NotBeNull();

                const string data = nameof(ShouldInvokeTheActualRegisteredQueryHandler);

                // Invoke.
                await queryHandlerDelegate.Invoke(new QuerySomething(data));

                queryHandler.HandledQueries.Should().HaveCount(1);
                queryHandler.HasHandledQuery <QuerySomething>().Should().BeTrue();
            }
コード例 #5
0
            public async Task Should_Invoke_The_Actual_Registered_Query_Handler()
            {
                var queryHandler = new TestQueryHandler(_testOutputHelper);

                var registration = new QueryHandlerRegistration();

                registration.Register(() => (IQueryHandler <QuerySomething, string>)queryHandler);

                QueryHandlerDelegate <string> queryHandlerDelegate = registration.ResolveQueryHandler <QuerySomething, string>();

                Assert.NotNull(queryHandlerDelegate);

                const string data = nameof(Should_Invoke_The_Actual_Registered_Query_Handler);

                // Invoke.
                await queryHandlerDelegate.Invoke(new QuerySomething(data));

                // Check if actual command handler instance was invoked.
                Assert.Equal(1, queryHandler.HandledQueries.Count);
                Assert.Contains(queryHandler.HandledQueries, c => c is QuerySomething);
            }