Exemplo n.º 1
0
        public async Task InvokeAsync_DuringApplicationShutdown_CallbackInvoked()
        {
            var callbackOneHandlerOne   = new CallbackOneHandlerOneAsync();
            var hostApplicationLifetime = new FakeHostApplicationLifetime();

            var serviceProvider = ServiceProviderHelper.GetServiceProvider(
                services => services
                .AddFakeLogger()
                .AddSilverback()
                .WithConnectionToMessageBroker(options => options.AddBroker <TestBroker>())
                .AddSingletonBrokerCallbackHandler(callbackOneHandlerOne),
                hostApplicationLifetime);

            hostApplicationLifetime.TriggerApplicationStopping();

            var invoker = serviceProvider.GetRequiredService <IBrokerCallbacksInvoker>();
            await invoker.InvokeAsync <ICallbackOneHandlerAsync>(handler => handler.HandleAsync());

            callbackOneHandlerOne.CallCount.Should().Be(1);
        }
Exemplo n.º 2
0
        public void Invoke_DisablingCallbackDuringShutdown_CallbackNotInvoked()
        {
            var callbackOneHandlerOne   = new CallbackOneHandlerOne();
            var hostApplicationLifetime = new FakeHostApplicationLifetime();

            var serviceProvider = ServiceProviderHelper.GetServiceProvider(
                services => services
                .AddFakeLogger()
                .AddSilverback()
                .WithConnectionToMessageBroker(options => options.AddBroker <TestBroker>())
                .AddSingletonBrokerCallbackHandler(callbackOneHandlerOne),
                hostApplicationLifetime);

            hostApplicationLifetime.TriggerApplicationStopping();

            var invoker = serviceProvider.GetRequiredService <IBrokerCallbacksInvoker>();

            invoker.Invoke <ICallbackOneHandler>(handler => handler.Handle(), invokeDuringShutdown: false);

            callbackOneHandlerOne.CallCount.Should().Be(0);
        }