public async Task GetDocumentStatusTest() { Uri sourceUri = await CreateSourceContainerAsync(oneTestDocuments); Uri targetUri = await CreateTargetContainerAsync(); string translateTo = "fr"; DocumentTranslationClient client = GetClient(); var input = new DocumentTranslationInput(sourceUri, targetUri, translateTo); DocumentTranslationOperation operation = await client.StartTranslationAsync(input); await operation.WaitForCompletionAsync(); AsyncPageable <DocumentStatusResult> documents = operation.GetDocumentStatusesAsync(); List <DocumentStatusResult> documentsList = await documents.ToEnumerableAsync(); Assert.AreEqual(1, documentsList.Count); DocumentStatusResult document = await operation.GetDocumentStatusAsync(documentsList[0].Id); CheckDocumentStatus(document, translateTo); }
internal static DocumentStatusResponse DeserializeDocumentStatusResponse(JsonElement element) { IReadOnlyList <DocumentStatusResult> value = default; Optional <string> nextLink = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("value")) { List <DocumentStatusResult> array = new List <DocumentStatusResult>(); foreach (var item in property.Value.EnumerateArray()) { array.Add(DocumentStatusResult.DeserializeDocumentStatusResult(item)); } value = array; continue; } if (property.NameEquals("@nextLink")) { nextLink = property.Value.GetString(); continue; } } return(new DocumentStatusResponse(value, nextLink.Value)); }
private void CheckDocumentStatus(DocumentStatusResult document, string translateTo) { Assert.AreEqual(DocumentTranslationStatus.Succeeded, document.Status); Assert.IsFalse(string.IsNullOrEmpty(document.Id)); Assert.IsNotNull(document.SourceDocumentUri); Assert.IsNotNull(document.TranslatedDocumentUri); Assert.AreEqual(100f, document.TranslationProgressPercentage); Assert.AreEqual(translateTo, document.TranslatedToLanguageCode); Assert.AreNotEqual(new DateTimeOffset(), document.CreatedOn); Assert.AreNotEqual(new DateTimeOffset(), document.LastModified); }