public void EnvelopeCreateWithDocumentObjectsAndGetDocumentFieldsTest()
        {
            const bool expected = true;
            const string expectedDocumentAttributeName = "Document Attribute Name";
            const string expectedDocumentAttributeValue = "Document Attribute Value";
            var actual = false;

            Assert.IsFalse(string.IsNullOrEmpty(_account.BaseUrl));

            var target = new Envelope { Login = _account };
            var fi = new FileInfo("./Test Contract.pdf");

            var documentCustomFields = new List<DocumentField>
            {
                new DocumentField {name = expectedDocumentAttributeName, value = expectedDocumentAttributeValue}
            };
            var documents = new List<Document>
            {
                new Document
                {
                    attachmentDescription = fi.Name.Replace(fi.Extension, string.Empty),
                    documentId = "1",
                    documentFields = documentCustomFields.ToArray(),
                    fileExtension = fi.Extension,
                    name = fi.Name
                }
            };

            var fileBytes = new List<Byte[]> { File.ReadAllBytes(fi.FullName) };

            try
            {
                actual = target.Create(fileBytes, documents);
            }
            catch (ArgumentNullException)
            {
            }

            Assert.AreEqual(expected, actual);
            Assert.IsFalse(string.IsNullOrEmpty(target.SenderViewUrl));
            var actualDocuments = target.GetDocuments();
            Assert.AreEqual(documents.Count, actualDocuments.Count);
            for (var i = 0; i < documents.Count; i++)
            {
                Assert.AreEqual(documents[i].documentId, actualDocuments[i].documentId);
                Assert.AreEqual(documents[i].name, actualDocuments[i].name);

                var fields = target.GetDocumentFields(documents[i].documentId);
                Assert.AreEqual(documents[i].documentFields.Count(), fields.documentFields.Count());
                for (var j = 0; j < documents[i].documentFields.Count(); j++)
                {
                    Assert.AreEqual(documents[i].documentFields[j].name, fields.documentFields[j].name);
                    Assert.AreEqual(documents[i].documentFields[j].value, fields.documentFields[j].value);
                }
            }
        }