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); }
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); }