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