public async Task TestThatStorageExceptionsAreRetried() { string appId = "appId"; var flushAndReleaseSequence = StubsUtils.Sequence <Func <Task> >() .Once(() => AsyncUtils.AsyncTaskThatThrows(new StorageException())) .Once(() => Task.CompletedTask) .Once(() => AsyncUtils.AsyncTaskThatThrows(new StorageException())) .Once(() => Task.CompletedTask); IUpdateBlob updateBlobStub = new StubIUpdateBlob() .FlushAndRelease(() => flushAndReleaseSequence.Next()) .Dispose(() => { }) .GetUpdateDomain(() => "1") .SetUpdateDomain(domain => { }) .AddInstance(id => { }) .RemoveInstance(id => { }); var updateBlobFactoryStub = new StubIUpdateBlobFactory() .TryLockUpdateBlob(id => AsyncUtils.AsyncTaskWithResult(updateBlobStub)); ContainerBuilder builder = AzureBlobStorageUpdateSessionDiModule.RegisterTypes("clusterId", "instanceId", "1", EmulatorConnectionString); builder.RegisterInstance(updateBlobFactoryStub).As <IUpdateBlobFactory>(); IUpdateSessionManager updateSessionManager = new AzureBlobStorageUpdateSessionDiModule(builder.Build()).UpdateSessionManager; Assert.True(await updateSessionManager.TryStartUpdateSession(appId)); await updateSessionManager.EndUpdateSession(appId); Assert.Equal(4, flushAndReleaseSequence.CallCount); }
public EndToEndTest(AzureStorageEmulatorTestFixture fixture) { fixture.ClearBlobStorage(); var module = new AzureBlobStorageUpdateSessionDiModule("deploymentId", "instanceId", "1", EmulatorConnectionString); _updateSessionManager = module.UpdateSessionManager; }
public static IYamsService Create(YamsConfig yamsConfig, string deploymentRepositoryStorageConnectionString, string updateSessionStorageConnectionString) { IUpdateSessionManager updateSessionManager = new AzureBlobStorageUpdateSessionDiModule( yamsConfig.ClusterDeploymentId, yamsConfig.InstanceId, yamsConfig.InstanceUpdateDomain, updateSessionStorageConnectionString).UpdateSessionManager; IDeploymentRepository deploymentRepository = new BlobStorageDeploymentRepository(deploymentRepositoryStorageConnectionString); return(new YamsDiModule(yamsConfig, deploymentRepository, updateSessionManager).YamsService); }