/// <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; }
public async Task UpdateTaskAssignment_ValidResponse() { /*** Arrange ***/ string 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, ""resolution_state"": ""incomplete"", ""assigned_by"": { ""type"": ""user"", ""id"": ""11993747"", ""name"": ""sean"", ""login"": ""*****@*****.**"" } }"; IBoxRequest boxRequest = null; Uri 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 ***/ BoxTaskAssignmentUpdateRequest 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(ResolutionStateType.incomplete, result.ResolutionState); Assert.AreEqual("*****@*****.**", result.AssignedBy.Login); Assert.AreEqual("11993747", result.AssignedBy.Id); Assert.AreEqual("*****@*****.**", result.AssignedTo.Login); Assert.AreEqual("1992432", result.AssignedTo.Id); }