public void TestDisposingBeforeGettingBuffer()
        {
            var count   = 4000;
            var manager = new BlockingBufferManager(300, count);

            manager.Dispose();
            manager.GetBuffer();
        }
        public void TestDisposingBeforeReleasingBuffer()
        {
            var count   = 4000;
            var manager = new BlockingBufferManager(300, count);

            var buffer = manager.GetBuffer();

            manager.Dispose();
            manager.ReleaseBuffer(buffer);
        }
        public void TestDisposingWhileGettingBuffer()
        {
            var manager = new BlockingBufferManager(300, 1);

            // Take the only buffer.
            manager.GetBuffer();

            // Dispose after one second.
            Task.Delay(1000).ContinueWith(t => manager.Dispose());

            // Wait for a buffer to become available.
            manager.GetBuffer();
        }
        public void TestDisposingBeforeGettingBuffer()
        {
            var count = 4000;
            var manager = new BlockingBufferManager(300, count);

            manager.Dispose();
            manager.GetBuffer();
        }
        public void TestDisposingWhileGettingBuffer()
        {
            var manager = new BlockingBufferManager(300, 1);

            // Take the only buffer.
            manager.GetBuffer();

            // Dispose after one second.
            Task.Delay(1000).ContinueWith(t => manager.Dispose());

            // Wait for a buffer to become available.
            manager.GetBuffer();
        }
        public void TestDisposingBeforeReleasingBuffer()
        {
            var count = 4000;
            var manager = new BlockingBufferManager(300, count);

            var buffer = manager.GetBuffer();
            manager.Dispose();
            manager.ReleaseBuffer(buffer);
        }