public async Task GetAsync_ShouldFetchSubmission() { // Arrange var submissionId = (await _dataHelper.Submissions().GetAnyAsync()).Id; // Act var submission = await _submissionsClient.GetAsync(submissionId); // Assert submission.Id.Should().BeGreaterThan(0); }
private async Task <JObject> WaitReady(Predicate <SubmissionStatus> isAwaitedStatus, int submissionId, TimeSpan checkInterval, CancellationToken cancellationToken) { if (isAwaitedStatus(SubmissionStatus.PROCESSING) || isAwaitedStatus(SubmissionStatus.FAILED)) { throw new ArgumentException($"Wrong awaited status. Cannot get the result when submission status is {SubmissionStatus.PROCESSING} or {SubmissionStatus.FAILED}."); } ISubmission submission; while (!isAwaitedStatus((submission = await _submissionsClient.GetAsync(submissionId, cancellationToken)).Status)) { if (submission.Status == SubmissionStatus.FAILED) { throw new WrongSubmissionStatusException(SubmissionStatus.FAILED); } await Task.Delay(checkInterval, cancellationToken); } var resultUri = new Uri(new Uri("indico-file://"), submission.ResultFile);// $"indico-file://{submission.ResultFile}"; var result = await _storageClient.GetAsync(resultUri); using (var reader = new JsonTextReader(new StreamReader(result))) { return(JsonSerializer.Create().Deserialize <JObject>(reader)); } }
private async Task <string> GetAnyJobIdAsync() { var submission = await _dataHelper.Submissions().GetAnyAsync(); while ((await _submissionsClient.GetAsync(submission.Id)).Status == SubmissionStatus.PROCESSING) { await Task.Delay(100); } var jobId = await _submissionsClient.GenerateSubmissionResultAsync(submission.Id); return(jobId); }
private async Task <JObject> WaitReady(Predicate <SubmissionStatus> isAwaitedStatus, int submissionId, TimeSpan checkInterval, CancellationToken cancellationToken) { ISubmission submission; while (!isAwaitedStatus((submission = await _submissionsClient.GetAsync(submissionId, cancellationToken)).Status)) { await Task.Delay(checkInterval, cancellationToken); } var resultUri = new Uri(new Uri("indico-file://"), submission.ResultFile);// $"indico-file://{submission.ResultFile}"; var result = await _storageClient.GetAsync(resultUri); using (var reader = new JsonTextReader(new StreamReader(result))) { return(JsonSerializer.Create().Deserialize <JObject>(reader)); } }