コード例 #1
0
        public async Task CopyFileRequest_Success()
        {
            /*** Arrange ***/
            IBoxRequest boxRequest = null;

            Handler.Setup(h => h.ExecuteAsync <BoxFileRequestObject>(It.IsAny <IBoxRequest>()))
            .Returns(Task.FromResult <IBoxResponse <BoxFileRequestObject> >(new BoxResponse <BoxFileRequestObject>()
            {
                Status        = ResponseStatus.Success,
                ContentString = LoadFixtureFromJson("Fixtures/BoxFileRequest/CopyFileRequest200.json")
            }))
            .Callback <IBoxRequest>(r => boxRequest = r);

            var folder = new BoxRequestEntity()
            {
                Id   = "44444",
                Type = BoxType.folder
            };
            var copyRequest = new BoxFileRequestCopyRequest
            {
                Folder = folder
            };

            /*** Act ***/
            BoxFileRequestObject response = await _fileRequestsManager.CopyFileRequestAsync("42037322", copyRequest);

            /*** Assert ***/
            // Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Post, boxRequest.Method);
            Assert.AreEqual(new Uri("https://api.box.com/2.0/file_requests/42037322/copy"), boxRequest.AbsoluteUri);

            // Response check
            Assert.AreEqual("42037322", response.Id);
            Assert.AreEqual(DateTimeOffset.Parse("2020-09-28T10:53:43-08:00"), response.CreatedAt);
            Assert.AreEqual("*****@*****.**", response.CreatedBy.Login);
            Assert.AreEqual("Aaron Levie", response.CreatedBy.Name);
            Assert.AreEqual("Following documents are requested for your process", response.Description);
            Assert.AreEqual("1", response.Etag);
            Assert.AreEqual(DateTimeOffset.Parse("2020-09-28T10:53:43-08:00"), response.ExpiresAt);
            Assert.AreEqual("44444", response.Folder.Id);
            Assert.AreEqual("Contracts2", response.Folder.Name);
            Assert.AreEqual(true, response.IsDescriptionRequired);
            Assert.AreEqual(true, response.IsEmailRequired);
            Assert.AreEqual(BoxFileRequestStatus.active, response.Status);
            Assert.AreEqual("Please upload documents", response.Title);
            Assert.AreEqual(DateTimeOffset.Parse("2020-09-28T10:53:43-08:00"), response.UpdatedAt);
            Assert.AreEqual("11446498", response.UpdatedBy.Id);
            Assert.AreEqual("*****@*****.**", response.UpdatedBy.Login);
            Assert.AreEqual("Aaron Levie", response.UpdatedBy.Name);
            Assert.AreEqual("/f/19e57f40ace247278a8e3d336678c64a", response.Url);
        }
コード例 #2
0
        /// <summary>
        /// Copies an existing file request that is already present on one folder, and applies it to another folder.
        /// </summary>
        /// <param name="fileRequestId">Id of the file request.</param>
        /// <returns>A full FileRequest object is returned if the id is valid and if the user has access to the file request.</returns>
        public async Task <BoxFileRequestObject> CopyFileRequestAsync(string fileRequestId, BoxFileRequestCopyRequest copyRequest)
        {
            fileRequestId.ThrowIfNullOrWhiteSpace("fileRequestId");

            var request = new BoxRequest(_config.FileRequestsEndpointWithPathUri, string.Format(Constants.FileRequestsCopyPathString, fileRequestId))
                          .Method(RequestMethod.Post)
                          .Payload(_converter.Serialize(copyRequest));

            IBoxResponse <BoxFileRequestObject> response = await ToResponseAsync <BoxFileRequestObject>(request).ConfigureAwait(false);

            return(response.ResponseObject);
        }