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);
            }
示例#3
0
        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)));
        }
示例#4
0
        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
            });
        }