Ejemplo n.º 1
0
        public async Task PostBook_Valid_Returns201CreatedAsync()
        {
            var filters = new Models.BookOptionFilter
            {
                BookId = 1,
            };
            var saveBook = new SaveBook()
            {
                Name        = "x",
                Description = "x",
            };
            var book = new Models.Book()
            {
                BookId = 1
            };

            this.BookRepositoryMock
            .Setup(x => x.AddAsync(It.IsAny <Models.Book>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(book);

            var response = await this.client.PostAsJsonAsync("book", saveBook).ConfigureAwait(false);

            Assert.Equal(HttpStatusCode.Created, response.StatusCode);
            Assert.Equal(ContentType.RestfulJson, response.Content.Headers.ContentType?.MediaType);
            var bookViewModel = await response.Content.ReadAsAsync <Book>(this.formatters).ConfigureAwait(false);

            var uriString = AddQueryString("/book", filters);

            Assert.Equal(new Uri($"http://localhost{uriString}"), response.Headers.Location);
        }
Ejemplo n.º 2
0
        public async Task PutBook_Valid_Returns200OkAsync()
        {
            var filters = new Models.BookOptionFilter
            {
                BookId = 1,
            };
            var saveBook = new SaveBook()
            {
                Name        = "x",
                Description = "x",
            };
            var book = new List <Models.Book> {
                new Models.Book()
                {
                    BookId = 1
                }
            };

            this.BookRepositoryMock
            .Setup(x => x.GetAsync(It.IsAny <Models.BookOptionFilter>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(book);
            this.BookRepositoryMock.Setup(x => x.UpdateAsync(book.First(), It.IsAny <CancellationToken>())).ReturnsAsync(book.First());

            var response = await this.client.PutAsJsonAsync("book/1", saveBook).ConfigureAwait(false);

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.Equal(ContentType.RestfulJson, response.Content.Headers.ContentType?.MediaType);
            var bookViewModel = await response.Content.ReadAsAsync <Book>(this.formatters).ConfigureAwait(false);

            Assert.Equal(bookViewModel.BookId, book.First().BookId);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Execute async.
        /// </summary>
        /// <param name="saveBook">The save book.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>An action result.</returns>
        public async Task <IActionResult> ExecuteAsync(SaveBook saveBook, CancellationToken cancellationToken)
        {
            var book = this.saveBookToBookMapper.Map(saveBook);

            book = await this.bookRepository.AddAsync(book, cancellationToken).ConfigureAwait(false);

            var bookViewModel = this.bookToBookMapper.Map(book);

            var filters = new Models.BookOptionFilter {
                BookId = bookViewModel.BookId
            };

            return(new CreatedAtRouteResult(
                       BookControllerRoute.GetBook,
                       filters,
                       bookViewModel));
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Execute async.
        /// </summary>
        /// <param name="bookId">The book id.</param>
        /// <param name="saveBook">The save book.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns>A action result.</returns>
        public async Task <IActionResult> ExecuteAsync(long bookId, SaveBook saveBook, CancellationToken cancellationToken)
        {
            var filters = new Models.BookOptionFilter {
                BookId = bookId
            };
            var book = await this.bookRepository.GetAsync(filters, cancellationToken).ConfigureAwait(false);

            if (book is null || !book.Any())
            {
                return(new NotFoundResult());
            }

            var item = book.First();

            this.saveBookToBookMapper.Map(saveBook, item);
            item = await this.bookRepository.UpdateAsync(item, cancellationToken).ConfigureAwait(false);

            var bookViewModel = this.bookToBookMapper.Map(item);

            return(new OkObjectResult(bookViewModel));
        }
Ejemplo n.º 5
0
        public async Task PutBook_BookNotFound_Returns404NotFoundAsync()
        {
            var filters = new Models.BookOptionFilter
            {
                BookId = 999,
            };
            var saveBook = new SaveBook()
            {
                Name        = "x",
                Description = "x",
            };
            var book = new List <Models.Book>();

            this.BookRepositoryMock.Setup(x => x.GetAsync(It.IsAny <Models.BookOptionFilter>(), It.IsAny <CancellationToken>())).ReturnsAsync(book);

            var response = await this.client.PutAsJsonAsync("book/999", saveBook).ConfigureAwait(false);

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
            var problemDetails = await response.Content.ReadAsAsync <ProblemDetails>(this.formatters).ConfigureAwait(false);

            Assert.Equal(StatusCodes.Status404NotFound, problemDetails.Status);
        }
Ejemplo n.º 6
0
 public Task <IActionResult> PutAsync(
     [FromServices] PutBookCommand command,
     long bookId,
     [FromBody] SaveBook book,
     CancellationToken cancellationToken) => command.ExecuteAsync(bookId, book, cancellationToken);
Ejemplo n.º 7
0
        public void Post([FromBody] Book value)
        {
            IInsertBook insertObject = new SaveBook();

            insertObject.InsertBook(value);
        }
Ejemplo n.º 8
0
        public void Put(int id, [FromBody] Book value)
        {
            IUpdateBook updateObject = new SaveBook();

            updateObject.UpdateBook(value);
        }