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