public void AcquireExpire()
        {

            var lockName = "AcquireExpire" + DateTime.Now.Ticks;

            var collection = GetCollection();
            collection.Should().NotBeNull();

            var locker = new DistributedLock(collection);
            locker.Should().NotBeNull();

            var result = locker.Acquire(lockName, TimeSpan.FromMilliseconds(5));
            result.Should().BeTrue();

            var status = locker.Status(lockName);
            status.Should().NotBeNull();
            status.IsLocked.Should().BeTrue();

            // wait for expire
            Thread.Sleep(5);

            var blocked = locker.Acquire(lockName, TimeSpan.FromMilliseconds(5));
            blocked.Should().BeTrue();

        }
        public void AcquireWait()
        {

            var lockName = "AcquireWait" + DateTime.Now.Ticks;

            var collection = GetCollection();
            collection.Should().NotBeNull();

            var locker = new DistributedLock(collection);
            locker.Should().NotBeNull();

            var result = locker.Acquire(lockName, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
            result.Should().BeTrue();

            var status = locker.Status(lockName);
            status.Should().NotBeNull();
            status.IsLocked.Should().BeTrue();

            var waited = locker.Acquire(lockName, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
            waited.Should().BeTrue();

        }
        public void AcquireBlock()
        {

            var lockName = "AcquireBlock" + DateTime.Now.Ticks;

            var collection = GetCollection();
            collection.Should().NotBeNull();

            var locker = new DistributedLock(collection, TimeSpan.FromMinutes(5));
            locker.Should().NotBeNull();

            var result = locker.Acquire(lockName);
            result.Should().BeTrue();

            var status = locker.Status(lockName);
            status.Should().NotBeNull();
            status.IsLocked.Should().BeTrue();

            var blocked = locker.Acquire(lockName);
            blocked.Should().BeFalse();

        }