public void UpdateWorkType_OK_すべての値を正常値で更新() { var requestObject = new WorkTypeCreateRequest { WorkTypeCode = new String('U', 20), WorkTypeTree = new String('2', 8), Name = new String('U', 256), Description = new String('U', 1024), Status = WorkTypeStatus.NORMAL.ToString(), SortNo = int.MaxValue, Tags = new List <string> { new String('U', 100) }, }; var request = new HttpRequestMessage(HttpMethod.Post, "/api/v1/workTypes"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "normal-write"); request.Content = new StringContent(JsonUtil.Serialize(requestObject), Encoding.UTF8, "application/json"); var response = _httpclient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); var responseBody = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); var workType = JsonUtil.Deserialize <WorkType>(responseBody); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var updateRequestObject = new WorkTypeUpdateRequest { WorkTypeCode = new String('V', 20), WorkTypeTree = new String('5', 8), Name = new String('V', 256), Description = new String('V', 1024), Status = WorkTypeStatus.SUSPENDED.ToString(), SortNo = 0, Tags = new List <string> { new String('V', 100) }, }; request = new HttpRequestMessage(HttpMethod.Patch, $"/api/v1/workTypes/{workType.WorkTypeId}"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "normal-write"); request.Content = new StringContent(JsonUtil.Serialize(updateRequestObject), Encoding.UTF8, "application/json"); response = _httpclient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); responseBody = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); workType = JsonUtil.Deserialize <WorkType>(responseBody); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.AreEqual(workType.WorkTypeCode, new String('V', 20)); Assert.AreEqual(workType.WorkTypeTree, new String('5', 8)); Assert.AreEqual(workType.Name, new String('V', 256)); Assert.AreEqual(workType.Description, new String('V', 1024)); Assert.AreEqual(workType.Status, WorkTypeStatus.SUSPENDED.ToString()); Assert.AreEqual(workType.SortNo, 0); Assert.AreEqual(workType.Tags[0], new String('V', 100)); }
public void UpdateWorkType_NotFound_WorkTypeIDの指定が存在しない() { var workTypeId = "00000000-0000-0000-0000-000000000000"; var requestObject = new WorkTypeUpdateRequest { WorkTypeCode = new String('Z', 20), }; var request = new HttpRequestMessage(HttpMethod.Patch, $"/api/v1/workTypes/{workTypeId}"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "normal-write"); request.Content = new StringContent(JsonUtil.Serialize(requestObject), Encoding.UTF8, "application/json"); var response = _httpclient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
public void UpdateWorkType_ValidationError_WorkTypeTreeを重複する値で更新() { var requestObject = new WorkTypeCreateRequest { WorkTypeCode = new String('S', 20), WorkTypeTree = new String('4', 8), Name = new String('S', 256), Description = new String('S', 1024), Status = WorkTypeStatus.NORMAL.ToString(), SortNo = int.MaxValue, Tags = new List <string> { new String('S', 100) }, }; var request = new HttpRequestMessage(HttpMethod.Post, "/api/v1/workTypes"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "normal-write"); request.Content = new StringContent(JsonUtil.Serialize(requestObject), Encoding.UTF8, "application/json"); var response = _httpclient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); var responseBody = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); var workType = JsonUtil.Deserialize <WorkType>(responseBody); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var updateRequestObject = new WorkTypeUpdateRequest { WorkTypeTree = "01", }; request = new HttpRequestMessage(HttpMethod.Patch, $"/api/v1/workTypes/{workType.WorkTypeId}"); request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "normal-write"); request.Content = new StringContent(JsonUtil.Serialize(updateRequestObject), Encoding.UTF8, "application/json"); response = _httpclient.SendAsync(request).ConfigureAwait(false).GetAwaiter().GetResult(); responseBody = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); var error = JsonUtil.Deserialize <Error>(responseBody); Assert.AreEqual(ErrorCodes.ValidationError, error.Code); Assert.IsTrue(error.Details.Exists(e => e.Target.Equals("WorkTypeTree", StringComparison.OrdinalIgnoreCase))); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); }
public ActionResult <WorkType> UpdateWorkType( [FromRoute] [Required(ErrorMessage = "DataAnnotationRequired")] [Guid(ErrorMessage = "DataAnnotationGuid")] string workTypeId, [FromBody] WorkTypeUpdateRequest request) { var workTypeGuid = Guid.Parse(workTypeId); var workType = _workTypeService.GetWorkType(workTypeGuid); if (workType == null) { return(ErrorObjectResultFactory.NotFound()); } if (request.WorkTypeCode != null && request.WorkTypeCode != workType.WorkTypeCode && _workTypeQueryService.ExistsWorkTypeCode(request.WorkTypeCode)) { return(ErrorObjectResultFactory.ValidationErrorDetail( string.Format(ErrorMessages.ValidationDuplicated, ErrorMessages.DisplayWorkTypeWorkTypeCode), "workTypeCode")); } if (request.WorkTypeTree != null && request.WorkTypeTree != workType.WorkTypeTree && _workTypeQueryService.ExistsWorkTypeTree(request.WorkTypeTree)) { return(ErrorObjectResultFactory.ValidationErrorDetail( string.Format(ErrorMessages.ValidationDuplicated, ErrorMessages.DisplayWorkTypeWorkTypeTree), "workTypeTree")); } var dto = _mapper.Map <WorkTypeUpdateRequest, WorkTypeUpdateDto>(request); dto.WorkTypeId = workTypeGuid; var entity = _workTypeService.UpdateWorkType(dto); return(_mapper.Map <Domain.Entities.WorkType, WorkType>(entity)); }