Exemple #1
0
        public void TestBlockingReceiveAsyncWithNoTimeout()
        {
            var services = new ServiceCollection();

            services.AddSingleton <IIntegrationServices, IntegrationServices>();
            var provider                = services.BuildServiceProvider();
            var messageNull             = false;
            var channel                 = new QueueChannel(provider);
            var latch                   = new CountdownEvent(1);
            var cancellationTokenSource = new CancellationTokenSource();
            var task = Task.Run(async() =>
            {
                var message = await channel.ReceiveAsync(cancellationTokenSource.Token);
                messageNull = message == null;
                latch.Signal();
            });

            cancellationTokenSource.Cancel();
            Assert.True(latch.Wait(10000));
            Assert.True(messageNull);
        }