Beispiel #1
0
        public async Task ICanLockForMoreThan30Seconds()
        {
            var locker = new AzureLockStore(
                new BlobSource()
            {
                ContainerName    = ContainerName,
                ConnectionString = ConnectionString,
                Path             = "this/is/great/"
            });

            var resource = Guid.NewGuid().ToString();
            var token    = new LockToken(resource);

            var canLock = await locker.TryLockAsync(token, 0, timeoutMilliseconds : 120 *1000);

            Assert.True(canLock);

            var newtoken = new LockToken(resource);

            Thread.Sleep(115 * 1000);
            var canDoubleLock = await locker.TryLockAsync(newtoken,
                                                          1, 100);

            await locker.ReleaseLockAsync(token);

            Assert.False(canDoubleLock);
        }
Beispiel #2
0
 private void OpenConnection()
 {
     _locker = new AzureLockStore(
         new BlobSource()
     {
         ContainerName    = ContainerName,
         ConnectionString = ConnectionString,
         Path             = "this/is/great/"
     });
 }
        public AzureLockStoreTests()
        {
            var s = Environment.GetEnvironmentVariable("abs_connection_string");

            _cn = string.IsNullOrEmpty(s) ? DefaultConnectionString : s;

            _locker = new AzureLockStore(
                new BlobSource()
            {
                ContainerName    = ContainerName,
                ConnectionString = _cn,
                Path             = "this/is/great/"
            });
        }
Beispiel #4
0
        public void TwoCannotLockAtTheSameTime()
        {
            var locker = new AzureLockStore(
                new BlobSource()
                {
                    ContainerName = "band25",
                    ConnectionString = ConnectionString,
                    Path = "this/is/great/"
                });

            var resource = Guid.NewGuid().ToString();
            var token = new LockToken(resource);

            var canLock = locker.TryLockAsync(token).Result;
            Assert.True(canLock);

            var newtoken = new LockToken(resource);

            var canDoubleLock = locker.TryLockAsync(newtoken,
                1, 100).Result;

            Assert.False(canDoubleLock);
        }
Beispiel #5
0
        public void TwoCannotLockAtTheSameTime()
        {
            var locker = new AzureLockStore(
                new BlobSource()
            {
                ContainerName    = "band25",
                ConnectionString = ConnectionString,
                Path             = "this/is/great/"
            });

            var resource = Guid.NewGuid().ToString();
            var token    = new LockToken(resource);

            var canLock = locker.TryLockAsync(token).Result;

            Assert.True(canLock);

            var newtoken = new LockToken(resource);

            var canDoubleLock = locker.TryLockAsync(newtoken,
                                                    1, 100).Result;

            Assert.False(canDoubleLock);
        }