public async Task <IActionResult> Put(Guid id, EditBookRequest
                                              request)
        {
            request.Id = id;
            var result = await _bookService.EditBookAsync(request);

            return(Ok(result));
        }
Esempio n. 2
0
        public async Task update_should_returns_not_found_when_book_is_not_present(EditBookRequest request)
        {
            var client = _factory.CreateClient();

            var httpContent =
                new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
            var response = await client.PutAsync($"/api/books/{Guid.NewGuid()}", httpContent);

            response.StatusCode.ShouldBe(HttpStatusCode.NotFound);
        }
Esempio n. 3
0
        public async Task update_should_returns_bad_request_if_genreid_not_exist(EditBookRequest request)
        {
            var client = _factory.CreateClient();

            request.GenreId = Guid.NewGuid();
            var httpContent =
                new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
            var response = await client.PutAsync($"/api/books/{request.Id}", httpContent);

            response.StatusCode.ShouldBe(HttpStatusCode.BadRequest);
        }
Esempio n. 4
0
        public async Task <BookResponse> EditBookAsync(EditBookRequest request)
        {
            var existingRecord = await _bookRepository.GetAsync(request.Id);

            if (existingRecord == null)
            {
                throw new ArgumentException($"Entity with {request.Id} is not present");
            }
            var entity = _bookMapper.Map(request);
            var result = _bookRepository.Update(entity);
            await _bookRepository.UnitOfWork.SaveChangesAsync();

            return(_bookMapper.Map(result));
        }
Esempio n. 5
0
        public async Task update_should_modify_existing_books(EditBookRequest request)
        {
            var client = _factory.CreateClient();

            var httpContent =
                new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json");
            var response = await client.PutAsync($"/api/books/{request.Id}", httpContent);

            response.EnsureSuccessStatusCode();

            var responseContent = await response.Content.ReadAsStringAsync();

            var responseEntity = JsonConvert.DeserializeObject <BookResponse>(responseContent);

            responseEntity.Name.ShouldBe(request.Name);
            responseEntity.Description.ShouldBe(request.Description);
            responseEntity.Format.ShouldBe(request.Format);
            responseEntity.PictureUri.ShouldBe(request.PictureUri);
            responseEntity.GenreId.ShouldBe(request.GenreId);
            responseEntity.AuthorId.ShouldBe(request.AuthorId);
        }
Esempio n. 6
0
        public async Task editBook_should_add_right_entity()
        {
            var testBook = new EditBookRequest
            {
                Id       = new Guid("b5b05534-9263-448c-a69e-0bbd8b3eb90e"),
                Name     = "Test album",
                GenreId  = new Guid("c04f05c0-f6ad-44d1-a400-3375bfb5dfd6"),
                AuthorId = new Guid("f08a333d-30db-4dd1-b8ba-3b0473c7cdab"),
                Price    = new Price {
                    Amount = 13, Currency = "EUR"
                }
            };
            BookService sut    = new BookService(_bookRepository, _mapper);
            var         result = await sut.EditBookAsync(testBook);

            result.Name.ShouldBe(testBook.Name);
            result.Description.ShouldBe(testBook.Description);
            result.GenreId.ShouldBe(testBook.GenreId);
            result.AuthorId.ShouldBe(testBook.AuthorId);
            result.Price.Amount.ShouldBe(testBook.Price.Amount);
            result.Price.Currency.ShouldBe(testBook.Price.Currency);
        }
        public async Task <IActionResult> Edit([FromBody] EditBookRequest editBookRequest)
        {
            await _bookService.Edit(editBookRequest);

            return(Ok());
        }