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