Exemple #1
0
        public void Dispose_should_release_semaphore()
        {
            var semaphore = new SemaphoreSlim(1);
            var subject   = new SemaphoreSlimRequest(semaphore, CancellationToken.None);

            subject.Dispose();

            semaphore.CurrentCount.Should().Be(1);
        }
        public void Dispose_should_release_semaphore()
        {
            var semaphore = new SemaphoreSlim(1);
            var subject = new SemaphoreSlimRequest(semaphore, CancellationToken.None);

            subject.Dispose();

            semaphore.CurrentCount.Should().Be(1);
        }
        public void Dispose_should_cancel_pending_request()
        {
            var semaphore = new SemaphoreSlim(1);
            semaphore.Wait();
            var subject = new SemaphoreSlimRequest(semaphore, CancellationToken.None);

            subject.Dispose();
            semaphore.Release();

            subject.Task.Status.Should().Be(TaskStatus.Canceled);
            semaphore.CurrentCount.Should().Be(1);
        }
Exemple #4
0
        public void Dispose_should_cancel_pending_request()
        {
            var semaphore = new SemaphoreSlim(1);

            semaphore.Wait();
            var subject = new SemaphoreSlimRequest(semaphore, CancellationToken.None);

            subject.Dispose();
            semaphore.Release();

            subject.Task.Status.Should().Be(TaskStatus.Canceled);
            semaphore.CurrentCount.Should().Be(1);
        }