public async Task Update_Computer(CreateComputer createComputer, UpdateComputer updateComputer)
            {
                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,
                                                          new StringContent(JsonConvert.SerializeObject(updateComputer), Encoding.UTF8, "application/json"));

                putResult = await HttpClient.GetAsync(putResult.Headers.Location);

                computer = JsonConvert.DeserializeObject <ComputerDto>(await putResult.Content.ReadAsStringAsync());

                computer.Name.Should().Be(updateComputer.Name);
                computer.Price.Should().Be(updateComputer.Price);
                foreach (var graphicsCard in createComputer.GraphicsCard)
                {
                    Assert.Contains(createComputer.GraphicsCard, x => x.Name == graphicsCard.Name);
                    Assert.Contains(createComputer.GraphicsCard, x => x.Price.Equals(graphicsCard.Price));
                }

                foreach (var ram in createComputer.Ram)
                {
                    Assert.Contains(createComputer.Ram, x => x.Name == ram.Name);
                    Assert.Contains(createComputer.Ram, x => x.Price.Equals(ram.Price));
                }
            }
            public async Task Create_GraphicsCard(CreateComputer createComputer,
                                                  IEnumerable <CreateGraphicsCard> createGraphicsCard)
            {
                var response = await HttpClient.PostAsync(ResourceKey,
                                                          new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(HttpStatusCode.Created, response.StatusCode);

                var computer = JsonConvert.DeserializeObject <ComputerDto>(await response.Content.ReadAsStringAsync());

                computer.Should().NotBeNull();

                var graphicsCardResponse = await HttpClient.PostAsync(ResourceKey + "/" + computer.Id + "/graphicscards",
                                                                      new StringContent(JsonConvert.SerializeObject(createGraphicsCard), Encoding.UTF8, "application/json"));

                var graphicsCards =
                    JsonConvert.DeserializeObject <IEnumerable <GraphicsCardDto> >(
                        await graphicsCardResponse.Content.ReadAsStringAsync());

                Assert.NotNull(graphicsCards);

                response = await HttpClient.GetAsync(graphicsCardResponse.Headers.Location);

                graphicsCards =
                    JsonConvert.DeserializeObject <IEnumerable <GraphicsCardDto> >(await response.Content.ReadAsStringAsync());

                foreach (var card in graphicsCards)
                {
                    Assert.Contains(createGraphicsCard, x => x.Name == card.Name);
                }
            }
Example #3
0
        public async Task <IActionResult> CreateComputer([FromBody] CreateComputer request,
                                                         [FromHeader(Name = "Accept")] string mediaType)
        {
            if (request == null)
            {
                return(BadRequest());
            }

            var response = await _computersService.CreateComputer(request);

            if (response.HttpStatusCode == (int)HttpStatusCode.Created)
            {
                if (mediaType.IsApplicationHal())
                {
                    response.Data = CreateLinkForComputer(response.Data);
                }

                return(CreatedAtRoute("GetComputer", new { computerId = response.Data.Id }, response.Data));
            }

            return(new ObjectResult(response.Data)
            {
                StatusCode = (int)response.HttpStatusCode,
                Value = response.Reason
            });
        }
            public async Task Create_Computer_Should_Return_UnProcessableEntity(CreateComputer createComputer)
            {
                createComputer.Name = new String('a', 256);
                var response = await HttpClient.PostAsync(ResourceKey,
                                                          new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(422, (int)response.StatusCode);
            }
            public async Task Delete_Computer(CreateComputer createComputer)
            {
                var response = await HttpClient.PostAsync(ResourceKey,
                                                          new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(HttpStatusCode.Created, response.StatusCode);

                var computer = JsonConvert.DeserializeObject <ComputerDto>(await response.Content.ReadAsStringAsync());

                computer.Should().NotBeNull();

                response = await HttpClient.DeleteAsync(ResourceKey + "/" + computer.Id);

                Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            }
            public async Task Update_Computer_Should_Return_UnProcessableEntity(CreateComputer createComputer,
                                                                                UpdateComputer updateComputer)
            {
                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());

                updateComputer.Name = new String('a', 256);

                var putResult = await HttpClient.PutAsync(ResourceKey + "/" + computer.Id,
                                                          new StringContent(JsonConvert.SerializeObject(updateComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(422, (int)putResult.StatusCode);
            }
Example #7
0
        public VerifyComputer AddComputer(string name, string introduced, string discontinued, string company)
        {
            //open page
            AddNewComputer.Click();
            //Thread.Sleep(1000);

            //provide data
            ComputerName.SendKeys(name);
            IntrodecedDate.SendKeys(introduced);
            DiscontinuedDate.SendKeys(discontinued);
            Company.SendKeys(company);
            Company.SendKeys(Keys.Enter);
            Console.WriteLine("Company details provided");

            //submit form
            CreateComputer.Submit();
            return(new VerifyComputer(webDriver));
        }
            public async Task Create_GraphicsCard_Should_Return_UnProcessableEntity(CreateComputer createComputer, IEnumerable <CreateGraphicsCard> createGraphicsCard)
            {
                var response = await HttpClient.PostAsync(ResourceKey,
                                                          new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(HttpStatusCode.Created, response.StatusCode);

                var computer = JsonConvert.DeserializeObject <ComputerDto>(await response.Content.ReadAsStringAsync());

                computer.Should().NotBeNull();

                createGraphicsCard.First().Name = new String('a', 256);

                var graphicsCardResponse = await HttpClient.PostAsync(ResourceKey + "/" + computer.Id + "/graphicscards",
                                                                      new StringContent(JsonConvert.SerializeObject(createGraphicsCard), Encoding.UTF8, "application/json"));

                Assert.Equal(422, (int)graphicsCardResponse.StatusCode);
            }
        public async Task <BaseResponse <ComputerDto> > CreateComputer(CreateComputer request)
        {
            var(errors, isValid) = EntityValidator.Validate(request);

            if (!isValid)
            {
                return(new BaseResponse <ComputerDto>((int)CustomHttpStatusCode.UnprocessableEntity, string.Join("", errors)));
            }

            var computer = new ComputerBuilder().CreateComputer(request.Name, request.Price)
                           .WithGraphicsCards(_mapper.Map <IEnumerable <Domain.GraphicsCard> >(request.GraphicsCard))
                           .WithRams(_mapper.Map <IEnumerable <Ram> >(request.Ram))
                           .Build();

            await _computerRepository.Create(computer);

            var computerDto = _mapper.Map <ComputerDto>(computer);

            return(new BaseResponse <ComputerDto>((int)HttpStatusCode.Created, computerDto));
        }
            public async Task Patch_Computer_Name_Replace(CreateComputer createComputer, string newName)
            {
                var response = await HttpClient.PostAsync(ResourceKey,
                                                          new StringContent(JsonConvert.SerializeObject(createComputer), Encoding.UTF8, "application/json"));

                Assert.Equal(HttpStatusCode.Created, response.StatusCode);

                var computer = JsonConvert.DeserializeObject <ComputerDto>(await response.Content.ReadAsStringAsync());

                computer.Should().NotBeNull();

                var jsonPatchDocument = new JsonPatchDocument <ComputerDto>();

                jsonPatchDocument.Replace(dto => dto.Name, newName);

                var patchResponse = await HttpClient.PatchAsync(ResourceKey + "/" + computer.Id,
                                                                new StringContent(JsonConvert.SerializeObject(jsonPatchDocument), Encoding.UTF8,
                                                                                  "application/json-patch+json"));

                computer = JsonConvert.DeserializeObject <ComputerDto>(await patchResponse.Content.ReadAsStringAsync());

                Assert.Equal(computer.Name, newName);
            }
            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);
            }