Exemplo n.º 1
0
        public async Task WaitOne_TimeoutZero_NotSignalled_ReturnsFalse()
        {
            var ev = new AutoResetEvent(false);

            var result = await ev.WaitOne(0);

            Assert.False(result);
        }
Exemplo n.º 2
0
        public async Task WaitOne_TimeoutZero_Signalled_ReturnsTrue()
        {
            var ev = new AutoResetEvent(true);

            var result = await ev.WaitOne(0);

            Assert.True(result);
        }
Exemplo n.º 3
0
        public async Task WaitOne_Timeout_Dispose()
        {
            var ev = new AutoResetEvent(false);

            var result = await ev.WaitOne(10);

            Assert.False(result);
            ev.Dispose();
        }
Exemplo n.º 4
0
        public async Task WaitOne_Timeout_ReturnsFalse()
        {
            var ev = new AutoResetEvent(false);

            var stp    = Stopwatch.StartNew();
            var result = await ev.WaitOne(10);

            stp.Stop();

            Assert.False(result);
            Assert.True(stp.ElapsedMilliseconds >= 10);
        }
Exemplo n.º 5
0
        public async Task WaitOne_Cancelled_ThrowsCancel()
        {
            var ev = new AutoResetEvent(false);

            var stp    = Stopwatch.StartNew();
            var cancel = new CancellationTokenSource(10);
            await Assert.ThrowsAsync <TaskCanceledException>(() => ev.WaitOne(cancel.Token));

            stp.Stop();

            Assert.True(stp.ElapsedMilliseconds >= 10);
        }
Exemplo n.º 6
0
        public async Task WaitOne_CancelAndTimeout_Dispose()
        {
            var ev     = new AutoResetEvent(false);
            var cancel = new CancellationTokenSource(25);

            var result = await ev.WaitOne(10, cancel.Token);

            await Task.Delay(25);

            Assert.False(result);
            ev.Dispose();
        }
Exemplo n.º 7
0
        public async Task WaitOne_ReleasesOnce_ReturnsTrue()
        {
            var ev = new AutoResetEvent(false);

            var stp = Stopwatch.StartNew();

            Timeout(() => ev.Set(), 10);

            var result = await ev.WaitOne();

            stp.Stop();

            Assert.True(result);
            Assert.True(stp.ElapsedMilliseconds >= 10);
        }
Exemplo n.º 8
0
        public async Task WaitOne_Cancel_Dispose()
        {
            var ev     = new AutoResetEvent(false);
            var cancel = new CancellationTokenSource(10);

            try
            {
                await ev.WaitOne(cancel.Token);

                throw new InvalidOperationException("WaitOne should throw a TaskCancelledException");
            }
            catch (TaskCanceledException)
            {
            }

            ev.Dispose();
        }