public void TestBlockingSendAsyncWithTimeout() { var services = new ServiceCollection(); services.AddSingleton <IIntegrationServices, IntegrationServices>(); var provider = services.BuildServiceProvider(); var channel = new QueueChannel(provider, 1); var result1 = channel.Send(new GenericMessage("test-1")); Assert.True(result1); var latch = new CountdownEvent(1); var cancellationTokenSource = new CancellationTokenSource(); Task.Run(async() => { cancellationTokenSource.CancelAfter(5); await channel.SendAsync(new GenericMessage("test-2"), cancellationTokenSource.Token); latch.Signal(); }); Assert.True(latch.Wait(10000)); }