Example #1
0
        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));
        }