/// <summary> /// Used to update a task assignment. /// </summary> /// <param name="taskAssignmentUpdateRequest">BoxTaskAssignmentUpdateRequest object.</param> /// <returns>A new task assignment object will be returned upon success.</returns> public async Task <BoxTaskAssignment> UpdateTaskAssignmentAsync(BoxTaskAssignmentUpdateRequest taskAssignmentUpdateRequest) { taskAssignmentUpdateRequest.ThrowIfNull("taskAssignmentUpdateRequest") .Id.ThrowIfNull("taskAssignmentUpdateRequest.Id"); BoxRequest request = new BoxRequest(_config.TaskAssignmentsEndpointUri, taskAssignmentUpdateRequest.Id) .Method(RequestMethod.Put) .Payload(_converter.Serialize(taskAssignmentUpdateRequest)); IBoxResponse <BoxTaskAssignment> response = await ToResponseAsync <BoxTaskAssignment>(request).ConfigureAwait(false); return(response.ResponseObject); }
private async Task RunUpdate() { base.CheckForValue(this._taskAssignmentId.Value, this._app, "A task assignment ID is required for this command"); var boxClient = base.ConfigureBoxClient(oneCallAsUserId: base._asUser.Value(), oneCallWithToken: base._oneUseToken.Value()); var taskAssignmentUpdate = new BoxTaskAssignmentUpdateRequest(); taskAssignmentUpdate.Id = this._taskAssignmentId.Value; if (this._completed.HasValue()) { taskAssignmentUpdate.ResolutionState = ResolutionStateType.completed; } else if (this._incomplete.HasValue()) { taskAssignmentUpdate.ResolutionState = ResolutionStateType.incomplete; } else if (this._approved.HasValue()) { taskAssignmentUpdate.ResolutionState = ResolutionStateType.approved; } else if (this._rejected.HasValue()) { taskAssignmentUpdate.ResolutionState = ResolutionStateType.rejected; } if (this._message.HasValue()) { taskAssignmentUpdate.Message = this._message.Value(); } var taskAssignment = await boxClient.TasksManager.UpdateTaskAssignmentAsync(taskAssignmentUpdate); if (base._json.HasValue() || this._home.GetBoxHomeSettings().GetOutputJsonSetting()) { base.OutputJson(taskAssignment); return; } Reporter.WriteSuccess("Updated task assignment."); base.PrintTaskAssignment(taskAssignment); }
public async Task UpdateTaskAssignment_ValidResponse() { /*** Arrange ***/ var responseString = @"{ ""type"": ""task_assignment"", ""id"": ""2698512"", ""item"": { ""type"": ""file"", ""id"": ""8018809384"", ""sequence_id"": ""0"", ""etag"": ""0"", ""sha1"": ""7840095ee096ee8297676a138d4e316eabb3ec96"", ""name"": ""scrumworksToTrello.js"" }, ""assigned_to"": { ""type"": ""user"", ""id"": ""1992432"", ""name"": ""*****@*****.**"", ""login"": ""*****@*****.**"" }, ""message"": ""hello!!!"", ""completed_at"": null, ""assigned_at"": ""2013-05-10T11:43:41-07:00"", ""reminded_at"": null, ""status"": ""incomplete"", ""assigned_by"": { ""type"": ""user"", ""id"": ""11993747"", ""name"": ""sean"", ""login"": ""*****@*****.**"" } }"; IBoxRequest boxRequest = null; var taskAssignmentsUri = new Uri(Constants.TaskAssignmentsEndpointString); Config.SetupGet(x => x.TaskAssignmentsEndpointUri).Returns(taskAssignmentsUri); Handler.Setup(h => h.ExecuteAsync <BoxTaskAssignment>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxTaskAssignment> >(new BoxResponse <BoxTaskAssignment>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback <IBoxRequest>(r => boxRequest = r); /*** Act ***/ var taskAssignmentUpdateRequest = new BoxTaskAssignmentUpdateRequest() { Id = "2698512", Message = "hello!!!" }; BoxTaskAssignment result = await _tasksManager.UpdateTaskAssignmentAsync(taskAssignmentUpdateRequest); /*** Assert ***/ //Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Put, boxRequest.Method); Assert.AreEqual(taskAssignmentsUri + taskAssignmentUpdateRequest.Id, boxRequest.AbsoluteUri.AbsoluteUri); BoxTaskAssignmentUpdateRequest payload = JsonConvert.DeserializeObject <BoxTaskAssignmentUpdateRequest>(boxRequest.Payload); Assert.AreEqual(taskAssignmentUpdateRequest.Id, payload.Id); Assert.AreEqual(taskAssignmentUpdateRequest.Message, payload.Message); //Response check Assert.AreEqual("2698512", result.Id); Assert.AreEqual("task_assignment", result.Type); Assert.AreEqual("hello!!!", result.Message); Assert.AreEqual("8018809384", result.Item.Id); Assert.AreEqual("file", result.Item.Type); Assert.AreEqual("0", result.Item.ETag); Assert.AreEqual("incomplete", result.Status); Assert.AreEqual("*****@*****.**", result.AssignedBy.Login); Assert.AreEqual("11993747", result.AssignedBy.Id); Assert.AreEqual("*****@*****.**", result.AssignedTo.Login); Assert.AreEqual("1992432", result.AssignedTo.Id); }