using Knoks.Core.Entities; using Knoks.Framework.Services; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.IO; using System.Threading.Tasks; using Xunit; namespace Knoks.Test.Integrations.Framework { public class DocuSigneSignatureTests { static DocuSigneSignatureService _docuSigneSignatureService = new DocuSigneSignatureService(new Logger(new LoggerFactory()), new DocuSigneSignatureSettings { Username = "d52f8286-2fd7-46e4-94a7-d32c72d0f841", Password = "8c2bec326b", IntegratorKey = "48f93e3f-00be-4e5c-88d8-aa6cf6d74164", EndpointUrl = "https://demo.docusign.net/restapi/v2/", EventNotificationUrl = "http://ngrok/v1/Services/DocuSign/EventNotification/{loanRequestAndUserUid}" }); [Fact(DisplayName = "DocuSigne.GetBaseUrl - Ok", Skip = "Should be confirmed if will need to use")] public async Task GetBaseUrl() { var result = await _docuSigneSignatureService.GetBaseUrl(); Assert.True(Uri.IsWellFormedUriString(result, UriKind.Absolute)); } [Fact(DisplayName = "DocuSigne.RequestSignature - Ok", Skip = "Should be confirmed if will need to use")] public async Task RequestSignature() { var signatureEntityInput = JsonConvert.DeserializeObject(File.ReadAllText(@".\Framework\DocuSigneEntity.json")); var signatureEntityOutput = await _docuSigneSignatureService.RequestSignature(signatureEntityInput, new JObject { ["LoanRequestAndUserUid"] = Uid.LoanRequestAndUser(12345, null), ["JsonPlacement"] = new JObject { ["emailSubject"] = "Please sign the Loan Contruct", ["recipients.signers[0].email"] = "markusshumate@mailinator.com", //-- check the email by on link: https://www.mailinator.com/inbox2.jsp?public_to=markusshumate ["recipients.signers[0].name"] = "Markus Shumate" } }); var jObj = signatureEntityOutput.Output as JObject; await Task.Delay(5000); Assert.NotNull(jObj); Assert.NotNull(jObj["envelopeId"]); } } }