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); }
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/" }); }
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); }
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); }