Exemple #1
0
    public async Task Send_FakeGenericQuery_ShouldGoThroughHandlersCorrectly()
    {
        // Arrange
        var serviceProvider = new ServiceCollection()
                              .AddLiteBus(configuration =>
        {
            configuration.AddQueries(builder =>
            {
                // Global Handlers
                builder.RegisterPreHandler <FakeGlobalQueryPreHandler>();
                builder.RegisterPostHandler <FakeGlobalQueryPostHandler>();

                // Fake Query Handlers
                builder.RegisterPreHandler(typeof(FakeGenericQueryPreHandler <>));
                builder.RegisterHandler(typeof(FakeGenericQueryHandlerWithoutResult <>));
                builder.RegisterPostHandler(typeof(FakeGenericQueryPostHandler <>));
            });
        })
                              .BuildServiceProvider();

        var queryMediator = serviceProvider.GetRequiredService <IQueryMediator>();
        var query         = new FakeGenericQuery <string>();

        // Act
        var queryResult = await queryMediator.QueryAsync(query);

        // Assert
        queryResult.CorrelationId.Should().Be(query.CorrelationId);
        query.ExecutedTypes.Should().HaveCount(5);
        query.ExecutedTypes[0].Should().Be <FakeGlobalQueryPreHandler>();
        query.ExecutedTypes[1].Should().Be <FakeGenericQueryPreHandler <string> >();
        query.ExecutedTypes[2].Should().Be <FakeGenericQueryHandlerWithoutResult <string> >();
        query.ExecutedTypes[3].Should().Be <FakeGenericQueryPostHandler <string> >();
        query.ExecutedTypes[4].Should().Be <FakeGlobalQueryPostHandler>();
    }
Exemple #2
0
 public Task <FakeGenericQueryResult> HandleAsync(FakeGenericQuery <TPayload> message,
                                                  CancellationToken cancellationToken = default)
 {
     message.ExecutedTypes.Add(typeof(FakeGenericQueryHandlerWithoutResult <TPayload>));
     return(Task.FromResult(new FakeGenericQueryResult(message.CorrelationId)));
 }