public async Task CreateSignRequest_RequiredParams_Success() { /*** Arrange ***/ IBoxRequest boxRequest = null; Handler.Setup(h => h.ExecuteAsync <BoxSignRequest>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxSignRequest> >(new BoxResponse <BoxSignRequest>() { Status = ResponseStatus.Success, ContentString = LoadFixtureFromJson("Fixtures/BoxSignRequest/CreateSignRequest200.json") })) .Callback <IBoxRequest>(r => boxRequest = r);; var sourceFiles = new List <BoxSignRequestCreateSourceFile> { new BoxSignRequestCreateSourceFile() { Id = "12345" } }; var signers = new List <BoxSignRequestSignerCreate> { new BoxSignRequestSignerCreate() { Email = "*****@*****.**", Role = BoxSignRequestSignerRole.signer, } }; var parentFolder = new BoxRequestEntity() { Id = "12345", Type = BoxType.folder }; var request = new BoxSignRequestCreateRequest { SourceFiles = sourceFiles, Signers = signers, ParentFolder = parentFolder, }; /*** Act ***/ var response = await _signRequestsManager.CreateSignRequestAsync(request); /*** Assert ***/ // Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(new Uri("https://api.box.com/2.0/sign_requests"), boxRequest.AbsoluteUri); Assert.IsTrue(boxRequest.Payload.ContainsKeyValue("signers[0].role", "signer")); // Response check Assert.AreEqual(1, response.SourceFiles.Count); Assert.AreEqual("12345", response.SourceFiles[0].Id); Assert.AreEqual(1, response.Signers.Count); Assert.AreEqual("*****@*****.**", response.Signers[0].Email); Assert.AreEqual("12345", response.ParentFolder.Id); }
/// <summary> /// Create a sign request object. /// </summary> /// <param name="signRequestCreateRequest">Sign request create request object in order to create a sign request object.</param> /// <returns>The sign request object that was successfully created.</returns> public async Task <BoxSignRequest> CreateSignRequestAsync(BoxSignRequestCreateRequest signRequestCreateRequest) { signRequestCreateRequest.ThrowIfNull("signRequestCreateRequest") .Signers.ThrowIfNull("signRequestCreateRequest.Signers"); signRequestCreateRequest.SourceFiles.ThrowIfNull("signRequestCreateRequest.SourceFiles"); signRequestCreateRequest.ParentFolder.ThrowIfNull("signRequestCreateRequest.ParentFolder") .Id.ThrowIfNull("signRequestCreateRequest.ParentFolder.Id"); BoxRequest request = new BoxRequest(_config.SignRequestsEndpointUri) .Method(RequestMethod.Post) .Payload(_converter.Serialize(signRequestCreateRequest)); IBoxResponse <BoxSignRequest> response = await ToResponseAsync <BoxSignRequest>(request).ConfigureAwait(false); return(response.ResponseObject); }
public async Task CreateSignRequest_OptionalParams_Success() { /*** Arrange ***/ IBoxRequest boxRequest = null; Handler.Setup(h => h.ExecuteAsync <BoxSignRequest>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxSignRequest> >(new BoxResponse <BoxSignRequest>() { Status = ResponseStatus.Success, ContentString = LoadFixtureFromJson("Fixtures/BoxSignRequest/CreateSignRequest200.json") })) .Callback <IBoxRequest>(r => boxRequest = r);; var sourceFiles = new List <BoxSignRequestCreateSourceFile> { new BoxSignRequestCreateSourceFile() { Id = "12345" } }; var signers = new List <BoxSignRequestSignerCreate> { new BoxSignRequestSignerCreate() { Email = "*****@*****.**" } }; var parentFolder = new BoxRequestEntity() { Id = "12345", Type = BoxType.folder }; var request = new BoxSignRequestCreateRequest { IsDocumentPreparationNeeded = true, AreRemindersEnabled = true, AreTextSignaturesEnabled = true, DaysValid = 2, EmailMessage = "Hello! Please sign the document below", EmailSubject = "Sign Request from Acme", ExternalId = "123", SourceFiles = sourceFiles, Signers = signers, ParentFolder = parentFolder, PrefillTags = new List <BoxSignRequestPrefillTag> { new BoxSignRequestPrefillTag ( "1234", "text" ) } }; /*** Act ***/ var response = await _signRequestsManager.CreateSignRequestAsync(request); /*** Assert ***/ // Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(new Uri("https://api.box.com/2.0/sign_requests"), boxRequest.AbsoluteUri); // Response check Assert.AreEqual(1, response.SourceFiles.Count); Assert.AreEqual("12345", response.SourceFiles[0].Id); Assert.AreEqual(1, response.Signers.Count); Assert.AreEqual("*****@*****.**", response.Signers[0].Email); Assert.AreEqual("12345", response.ParentFolder.Id); Assert.IsTrue(response.IsDocumentPreparationNeeded); Assert.IsTrue(response.AreRemindersEnabled); Assert.IsTrue(response.AreTextSignaturesEnabled); Assert.AreEqual(2, response.DaysValid); Assert.AreEqual("Hello! Please sign the document below", response.EmailMessage); Assert.AreEqual("Sign Request from Acme", response.EmailSubject); Assert.AreEqual("123", response.ExternalId); Assert.AreEqual(1, response.PrefillTags.Count); Assert.AreEqual("1234", response.PrefillTags[0].DocumentTagId); Assert.AreEqual("text", response.PrefillTags[0].TextValue); Assert.AreEqual(DateTimeOffset.Parse("2021-04-26T08:12:13.982Z"), response.PrefillTags[0].DateValue); }