using System.Threading.Tasks; using Elsa.Testing.Shared; using Elsa.Workflows.Core.Contracts; using Elsa.Workflows.Core.Notifications; using Microsoft.Extensions.DependencyInjection; using Xunit; using Xunit.Abstractions; namespace Elsa.IntegrationTests.Scenarios.ActivityNotificationsMiddleware; public class Tests { private readonly IWorkflowRunner _workflowRunner; private readonly CapturingTextWriter _capturingTextWriter = new(); private readonly Spy _spy; public Tests(ITestOutputHelper testOutputHelper) { var services = new TestApplicationBuilder(testOutputHelper) .WithCapturingTextWriter(_capturingTextWriter) .ConfigureServices(s => { s.AddSingleton(); s.AddNotificationHandler(); s.AddNotificationHandler(); }) .Build(); _workflowRunner = services.GetRequiredService(); _spy = services.GetRequiredService(); } [Fact(DisplayName = "Running workflow with activity notifications middleware results in notifications being published")] public async Task Test1() { await _workflowRunner.RunAsync(); Assert.True(_spy.ActivityExecutingWasCalled); Assert.True(_spy.ActivityExecutedWasCalled); } }