public async Task WaitTimeout() { const string tenant = "my tenant"; const string clientId = "my id"; const string clientSecret = "very secret"; const string commitDigest = "commit digest"; Mock <IMcrStatusClient> statusClientMock = new Mock <IMcrStatusClient>(); statusClientMock .Setup(o => o.GetCommitResultAsync(commitDigest)) .ReturnsAsync( new CommitResult { Value = new List <CommitStatus> { new CommitStatus { OverallStatus = StageStatus.NotStarted } } }); IMcrStatusClientFactory statusClientFactory = CreateMcrStatusClientFactory(tenant, clientId, clientSecret, statusClientMock.Object); Mock <IEnvironmentService> environmentServiceMock = new Mock <IEnvironmentService>(); WaitForMcrDocIngestionCommand command = new WaitForMcrDocIngestionCommand( Mock.Of <ILoggerService>(), statusClientFactory, environmentServiceMock.Object); command.Options.CommitDigest = commitDigest; command.Options.ServicePrincipal.Tenant = tenant; command.Options.ServicePrincipal.ClientId = clientId; command.Options.ServicePrincipal.Secret = clientSecret; command.Options.WaitTimeout = TimeSpan.FromSeconds(3); environmentServiceMock.Verify(o => o.Exit(It.IsAny <int>()), Times.Never); await Assert.ThrowsAsync <TimeoutException>(() => command.ExecuteAsync()); }
public async Task OnboardingRequestsWithDuplicateDigest_Success() { const string tenant = "my tenant"; const string clientId = "my id"; const string clientSecret = "very secret"; const string commitDigest = "commit digest"; const string onboardingRequestId = "onboard"; DateTime baselineTime = DateTime.Now; IEnumerator <CommitResult> commitResultEnumerator = new List <CommitResult> { new CommitResult { Value = new List <CommitStatus> { new CommitStatus { QueueTime = baselineTime, OverallStatus = StageStatus.Processing }, new CommitStatus { QueueTime = baselineTime.AddMinutes(1), OverallStatus = StageStatus.Processing } } }, new CommitResult { Value = new List <CommitStatus> { new CommitStatus { QueueTime = baselineTime, OverallStatus = StageStatus.Processing }, new CommitStatus { OnboardingRequestId = onboardingRequestId, QueueTime = baselineTime.AddMinutes(1), OverallStatus = StageStatus.Failed } } }, new CommitResult { Value = new List <CommitStatus> { new CommitStatus { QueueTime = baselineTime, OverallStatus = StageStatus.Succeeded }, new CommitStatus { OnboardingRequestId = onboardingRequestId, QueueTime = baselineTime.AddMinutes(1), OverallStatus = StageStatus.Failed } } } }.GetEnumerator(); Mock <IMcrStatusClient> statusClientMock = new Mock <IMcrStatusClient>(); statusClientMock .Setup(o => o.GetCommitResultAsync(commitDigest)) .ReturnsAsync(() => { if (commitResultEnumerator.MoveNext()) { return(commitResultEnumerator.Current); } return(null); }); statusClientMock .Setup(o => o.GetCommitResultDetailedAsync(commitDigest, onboardingRequestId)) .ReturnsAsync(new CommitResultDetailed()); IMcrStatusClientFactory statusClientFactory = CreateMcrStatusClientFactory(tenant, clientId, clientSecret, statusClientMock.Object); Mock <IEnvironmentService> environmentServiceMock = new Mock <IEnvironmentService>(); WaitForMcrDocIngestionCommand command = new WaitForMcrDocIngestionCommand( Mock.Of <ILoggerService>(), statusClientFactory, environmentServiceMock.Object); command.Options.CommitDigest = commitDigest; command.Options.ServicePrincipal.Tenant = tenant; command.Options.ServicePrincipal.ClientId = clientId; command.Options.ServicePrincipal.Secret = clientSecret; command.Options.WaitTimeout = TimeSpan.FromMinutes(1); await command.ExecuteAsync(); environmentServiceMock.Verify(o => o.Exit(It.IsAny <int>()), Times.Never); statusClientMock.Verify(o => o.GetCommitResultAsync(commitDigest), Times.Exactly(3)); }
public async Task SuccessfulPublish() { const string tenant = "my tenant"; const string clientId = "my id"; const string clientSecret = "very secret"; const string commitDigest = "commit digest"; IEnumerator <CommitResult> commitResultEnumerator = new List <CommitResult> { new CommitResult { Value = new List <CommitStatus> { new CommitStatus { OverallStatus = StageStatus.NotStarted } } }, new CommitResult { Value = new List <CommitStatus> { new CommitStatus { OverallStatus = StageStatus.Processing } } }, new CommitResult { Value = new List <CommitStatus> { new CommitStatus { OverallStatus = StageStatus.Processing } } }, new CommitResult { Value = new List <CommitStatus> { new CommitStatus { OverallStatus = StageStatus.Succeeded } } } }.GetEnumerator(); Mock <IMcrStatusClient> statusClientMock = new Mock <IMcrStatusClient>(); statusClientMock .Setup(o => o.GetCommitResultAsync(commitDigest)) .ReturnsAsync(() => { if (commitResultEnumerator.MoveNext()) { return(commitResultEnumerator.Current); } return(null); }); IMcrStatusClientFactory statusClientFactory = CreateMcrStatusClientFactory(tenant, clientId, clientSecret, statusClientMock.Object); Mock <IEnvironmentService> environmentServiceMock = new Mock <IEnvironmentService>(); WaitForMcrDocIngestionCommand command = new WaitForMcrDocIngestionCommand( Mock.Of <ILoggerService>(), statusClientFactory, environmentServiceMock.Object); command.Options.CommitDigest = commitDigest; command.Options.ServicePrincipal.Tenant = tenant; command.Options.ServicePrincipal.ClientId = clientId; command.Options.ServicePrincipal.Secret = clientSecret; command.Options.WaitTimeout = TimeSpan.FromMinutes(1); await command.ExecuteAsync(); environmentServiceMock.Verify(o => o.Exit(It.IsAny <int>()), Times.Never); statusClientMock.Verify(o => o.GetCommitResultAsync(commitDigest), Times.Exactly(4)); }