Пример #1
0
 public void UpdateFrom(BookToEdit bookToEdit)
 {
     this.ISBN        = bookToEdit.ISBN;
     this.Name        = bookToEdit.Name;
     this.AuthorName  = bookToEdit.AuthorName;
     this.ReleaseDate = bookToEdit.ReleaseDate;
 }
        public void AddABook_EditTheBook_ShouldReturnTheBookEdited()
        {
            var book = new BookToCreate()
            {
                ISBN = "-", Name = "Clean Code"
            };

            // In-memory database only exists while the connection is open
            var connection = new SqliteConnection("DataSource=:memory:");

            connection.Open();

            try
            {
                var options = new DbContextOptionsBuilder <LibraryContext>()
                              .UseSqlite(connection)
                              .Options;

                // Create the schema in the database
                using (var context = new LibraryContext(options))
                {
                    context.Database.EnsureCreated();
                }

                // Run the test against one instance of the context
                using (var context = new LibraryContext(options))
                {
                    var mockUoW = new Mock <UnitOfWork>(context);
                    var service = new Mock <BooksService>(mockUoW.Object);

                    service.Object.Add(book);
                    context.SaveChanges();
                }

                // Use a separate instance of the context to verify correct data was saved to database
                using (var context = new LibraryContext(options))
                {
                    var mockUoW = new Mock <UnitOfWork>(context);
                    var service = new Mock <BooksService>(mockUoW.Object);

                    var bookRecovered = context.Books.FirstOrDefault();
                    var bookToEdit    = new BookToEdit {
                        ISBN = "123", Name = "Life is Beautiful"
                    };

                    var result = service.Object.Edit(bookRecovered.Id.ToString(), bookToEdit);

                    result.ISBN.Should().Be(bookToEdit.ISBN);
                }
            }
            finally
            {
                connection.Close();
            }
        }
        public void Edit_ExistingBook_ShouldReturnOkObjectResult()
        {
            var book = new BookToEdit()
            {
                ISBN = "ABC123", Name = "Clean Code"
            };

            var result = _controller.Edit("1", book);

            result.ISBN.Should().Be(book.ISBN);
        }
Пример #4
0
        public async Task <object> Edit(string id, BookToEdit bookToEdit)
        {
            var request = new RestRequest($"/api/books/{id}")
            {
                Method = Method.PUT, RequestFormat = DataFormat.Json
            };

            request.AddJsonBody(bookToEdit);

            var result = await libraryClient.PutAsync <BookToReturn>(request);

            return(result);
        }
Пример #5
0
        public BookToReturn Edit(string id, BookToEdit bookToEdit)
        {
            var book = unitOfWork.BooksRepository.GetByID(id);

            if (book == null)
            {
                return(null);
            }

            book.UpdateFrom(bookToEdit);

            unitOfWork.Complete();

            return(book.ToBookToReturn());
        }
Пример #6
0
 public async Task <IActionResult> Edit(string id, [FromBody] BookToEdit bookToEdit)
 {
     return(Ok(await booksService.Edit(id, bookToEdit)));
 }
Пример #7
0
 public BookToReturn Edit([FromRoute] string id, BookToEdit bookToEdit)
 {
     return(booksService.Edit(id, bookToEdit));
 }