コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        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);
        }