Esempio n. 1
0
        public async Task UpdateFileRequest_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/UpdateFileRequest200.json")
            }))
            .Callback <IBoxRequest>(r => boxRequest = r);

            var updateRequest = new BoxFileRequestUpdateRequest
            {
                Description     = "New, updated description",
                ExpiresAt       = DateTimeOffset.Parse("2021-09-28T10:53:43-08:00"),
                IsEmailRequired = false,
                Status          = BoxFileRequestStatus.inactive
            };

            /*** Act ***/
            BoxFileRequestObject response = await _fileRequestsManager.UpdateFileRequestAsync("42037322", updateRequest);

            /*** Assert ***/
            // Request check
            Assert.IsNotNull(boxRequest);
            Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
            Assert.AreEqual(new Uri("https://api.box.com/2.0/file_requests/42037322"), boxRequest.AbsoluteUri);
            Assert.IsTrue(boxRequest.Payload.ContainsKeyValue("status", "inactive"));

            // 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("New, updated description", response.Description);
            Assert.AreEqual("1", response.Etag);
            Assert.AreEqual(DateTimeOffset.Parse("2021-09-28T10:53:43-08:00"), response.ExpiresAt);
            Assert.AreEqual("12345", response.Folder.Id);
            Assert.AreEqual("Contracts", response.Folder.Name);
            Assert.AreEqual(true, response.IsDescriptionRequired);
            Assert.AreEqual(false, response.IsEmailRequired);
            Assert.AreEqual(BoxFileRequestStatus.inactive, 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>
        /// Updates a file request. This can be used to activate or deactivate a file request.
        /// </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> UpdateFileRequestAsync(string fileRequestId, BoxFileRequestUpdateRequest updateRequest)
        {
            fileRequestId.ThrowIfNullOrWhiteSpace("fileRequestId");

            var request = new BoxRequest(_config.FileRequestsEndpointWithPathUri, fileRequestId)
                          .Method(RequestMethod.Put)
                          .Payload(_converter.Serialize(updateRequest));

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

            return(response.ResponseObject);
        }