public async Task TestStartUpdateSessionSimple()
        {
            UpdateSessionManagerConfig    config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "1", "instanceId", _storageContainerName);
            BlobBasedUpdateSessionManager updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);

            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));
        }
        public async Task TestThatDifferentClustersCanUpdateIndependently()
        {
            UpdateSessionManagerConfig    config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "1", "instanceId1", _storageContainerName);
            BlobBasedUpdateSessionManager updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);

            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));

            config = new UpdateSessionManagerConfig("cloudServiceDeploymentId2", "2", "instanceId2", _storageContainerName);
            updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);
            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));
        }
        public async Task TestThatMultipleInstancesInTheSameUpdateDomainCanUpdateSimultaneously()
        {
            UpdateSessionManagerConfig    config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "1", "instanceId1", _storageContainerName);
            BlobBasedUpdateSessionManager updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);

            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));

            config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "1", "instanceId2", _storageContainerName);
            updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);
            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));
        }
        public async Task TestThatOnlyOneUpdateDomainCanUpdateAtATime()
        {
            UpdateSessionManagerConfig    config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "1", "instanceId1", _storageContainerName);
            BlobBasedUpdateSessionManager updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);

            Assert.IsTrue(await updateSessionManager.TryStartUpdateSession("app1"));

            config = new UpdateSessionManagerConfig("cloudServiceDeploymentId", "2", "instanceId2", _storageContainerName);
            updateSessionManager = new BlobBasedUpdateSessionManager(config, _blobClient, _blobLeaseFactory);
            Assert.IsFalse(await updateSessionManager.TryStartUpdateSession("app1"));
        }
Ejemplo n.º 5
0
 public async Task TestThatEndUpdateSessionThrowsIfBlobCannotBeLocked()
 {
     string appId = null;
     var updateBlobFactoryStub = new StubIUpdateBlobFactory().TryLockUpdateBlob(
         id =>
         {
             appId = id;
             return AsyncUtils.AsyncTaskThatThrows<IUpdateBlob>(new UpdateBlobUnavailableException());
         }
     );
     BlobBasedUpdateSessionManager updateSessionManager = new BlobBasedUpdateSessionManager(updateBlobFactoryStub, "instanceId1", "1");
     await Assert.ThrowsAnyAsync<Exception>(async () => await updateSessionManager.EndUpdateSession("app1"));
     Assert.Equal("app1", appId);
 }