Exemplo n.º 1
0
        public async Task LeaseBasicTests(string storageConnectionString, string siteName)
        {
            if (string.IsNullOrEmpty(storageConnectionString))
            {
                return;
            }

            AppServiceSettings.StorageConnectionString = storageConnectionString;
            AppServiceSettings.SiteName   = siteName;
            AppServiceSettings.WorkerName = "127.0.0.1";
            try
            {
                var         table     = AppServiceWorkerTable.Instance;
                ILockHandle tableLock = null;
                try
                {
                    tableLock = await table.AcquireLock();

                    await tableLock.Release();

                    tableLock = null;

                    tableLock = await table.AcquireLock();

                    await tableLock.Release();

                    tableLock = null;
                }
                finally
                {
                    if (tableLock != null)
                    {
                        await tableLock.Release();
                    }
                }

                Assert.Null(tableLock);
            }
            finally
            {
                ResetEnvironment();
            }
        }
Exemplo n.º 2
0
        public async Task LeaseConflictTests(string storageConnectionString, string siteName)
        {
            if (string.IsNullOrEmpty(storageConnectionString))
            {
                return;
            }

            AppServiceSettings.StorageConnectionString = storageConnectionString;
            AppServiceSettings.SiteName   = siteName;
            AppServiceSettings.WorkerName = "127.0.0.1";
            try
            {
                var         table     = AppServiceWorkerTable.Instance;
                ILockHandle tableLock = null;
                try
                {
                    tableLock = await table.AcquireLock();

                    var exception = await Assert.ThrowsAsync <InvalidOperationException>(async() => await table.AcquireLock());

                    Assert.Contains("Conflict", exception.Message);

                    await tableLock.Release();

                    tableLock = null;
                }
                finally
                {
                    if (tableLock != null)
                    {
                        await tableLock.Release();
                    }
                }

                Assert.Null(tableLock);
            }
            finally
            {
                ResetEnvironment();
            }
        }