/// <summary> /// Used to apply or update the watermark for a corresponding Box folder. /// </summary> /// <param name="id">Id of the folder.</param> /// <param name="applyWatermarkRequest">BoxApplyWatermarkRequest object. Can be null, for using default values - imprint="default" </param> /// <returns>An object containing information about the watermark associated for this folder.</returns> public async Task <BoxWatermark> ApplyWatermarkAsync(string id, BoxApplyWatermarkRequest applyWatermarkRequest = null) { id.ThrowIfNullOrWhiteSpace("id"); if (applyWatermarkRequest == null) { applyWatermarkRequest = new BoxApplyWatermarkRequest() { Watermark = new BoxWatermarkRequest() { Imprint = "default" } }; } BoxRequest request = new BoxRequest(_config.FoldersEndpointUri, string.Format(Constants.WatermarkPathString, id)) .Method(RequestMethod.Put) .Payload(_converter.Serialize(applyWatermarkRequest)); IBoxResponse <BoxWatermarkResponse> response = await ToResponseAsync <BoxWatermarkResponse>(request).ConfigureAwait(false); if (response.Status == ResponseStatus.Success) { return(response.ResponseObject.Watermark); } else { return(null); } }
public async Task ApplyWatermarkToFile_ValidResponse_ValidWatermark() { /*** Arrange ***/ string responseString = @"{ ""watermark"": { ""created_at"": ""2016-10-31T15:33:33-07:00"", ""modified_at"": ""2016-10-31T15:33:33-07:00"" } }"; IBoxRequest boxRequest = null; _handler.Setup(h => h.ExecuteAsync <BoxWatermarkResponse>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxWatermarkResponse> >(new BoxResponse <BoxWatermarkResponse>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback <IBoxRequest>(r => boxRequest = r); /*** Act ***/ BoxWatermark result = await _filesManager.ApplyWatermarkAsync("5010739069"); /*** Assert ***/ //Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Put, boxRequest.Method); Assert.AreEqual(_FilesUri + "5010739069/watermark", boxRequest.AbsoluteUri.AbsoluteUri); BoxApplyWatermarkRequest payload = JsonConvert.DeserializeObject <BoxApplyWatermarkRequest>(boxRequest.Payload); Assert.AreEqual("default", payload.Watermark.Imprint); //Response check Assert.AreEqual(DateTime.Parse("2016-10-31T15:33:33-07:00"), result.CreatedAt.Value); Assert.AreEqual(DateTime.Parse("2016-10-31T15:33:33-07:00"), result.ModifiedAt.Value); }