public async Task Update_GraphicsCard_Should_Return_UnProcessableEntity(CreateComputer createComputer, UpdateGraphicsCard updateGraphicsCardCommand) { var postResponse = await HttpClient.PostAsync(ResourceKey, new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json")); Assert.Equal(HttpStatusCode.Created, postResponse.StatusCode); updateGraphicsCardCommand.Name = new String('a', 256); var computer = JsonConvert.DeserializeObject <ComputerDto>(await postResponse.Content.ReadAsStringAsync()); var putResult = await HttpClient.PutAsync( ResourceKey + "/" + computer.Id + "/graphicscards/" + computer.GraphicCards.First().Id, new StringContent(JsonConvert.SerializeObject(updateGraphicsCardCommand), Encoding.UTF8, "application/json")); Assert.Equal(422, (int)putResult.StatusCode); }
public async Task Update_GraphicsCard(CreateComputer createComputer, UpdateGraphicsCard updateGraphicsCardCommand) { var postResponse = await HttpClient.PostAsync(ResourceKey, new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json")); Assert.Equal(HttpStatusCode.Created, postResponse.StatusCode); var computer = JsonConvert.DeserializeObject <ComputerDto>(await postResponse.Content.ReadAsStringAsync()); var putResult = await HttpClient.PutAsync( ResourceKey + "/" + computer.Id + "/graphicscards/" + computer.GraphicCards.First().Id, new StringContent(JsonConvert.SerializeObject(updateGraphicsCardCommand), Encoding.UTF8, "application/json")); putResult = await HttpClient.GetAsync(putResult.Headers.Location); var updatedGraphicsCard = JsonConvert.DeserializeObject <GraphicsCardDto>(await putResult.Content.ReadAsStringAsync()); updatedGraphicsCard.Should().NotBeNull(); Assert.Equal(updatedGraphicsCard.Name, updatedGraphicsCard.Name); Assert.Equal(updatedGraphicsCard.Price, updatedGraphicsCard.Price); }
public async Task <BaseResponse <GraphicsCardDto> > Update(Guid computerId, Guid graphicsCardId, UpdateGraphicsCard command) { var(errors, isValid) = EntityValidator.Validate(command); if (!isValid) { return(new BaseResponse <GraphicsCardDto>((int)CustomHttpStatusCode.UnprocessableEntity, string.Join("", errors))); } if (!await _graphicsCardRepository.Exists(computerId, graphicsCardId)) { return(new BaseResponse <GraphicsCardDto>((int)HttpStatusCode.NotFound)); } var graphicsCard = _builder.UpdateGraphicsCard(graphicsCardId, command.Price, command.Name, computerId) .Build(); graphicsCard.Update(command.Name, command.Price); await _graphicsCardRepository.Update(graphicsCard); return(new BaseResponse <GraphicsCardDto>((int)HttpStatusCode.Created, _mapper.Map <GraphicsCardDto>(graphicsCard))); }
public async Task <IActionResult> UpdateGraphicsCard(Guid computerId, Guid graphicsCardId, [FromBody] UpdateGraphicsCard updateGraphicsCardCommand) { if (updateGraphicsCardCommand == null) { return(BadRequest()); } var response = await _graphicsCardsService.Update(computerId, graphicsCardId, updateGraphicsCardCommand); if (response.HttpStatusCode == (int)HttpStatusCode.Created) { return(CreatedAtRoute("GetGraphicCardForComputer", new { computerId = response.Data.ComputerId, graphicsCardId = response.Data.Id }, response.Data)); } return(new ObjectResult(response.Data) { StatusCode = (int)response.HttpStatusCode }); }