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