예제 #1
0
        public void ShouldAddNewBookToDatabase()
        {
            var book = new Book();

            _libraryRepository.AddNewBook(book);

            _booksDbSetMock.Verify(x => x.Add(book));
        }
        public void AddNewBookAlreadyExisting(string isbn, string name, double price)
        {
            var newBook = new Book {
                ISBN = isbn, Name = name
            };

            // Mock the validators
            var mockValidator = new Mock <IValidationService>();

            mockValidator.Setup(x => x.isValidBook(newBook)).Returns(true);
            mockValidator.Setup(x => x.IsValidQuantity(1)).Returns(true);
            mockValidator.Setup(x => x.IsValidPrice(price)).Returns(true);
            var dependencyService = new DependencyService();

            dependencyService.Register <IValidationService>(mockValidator.Object);
            var availableBooks = new List <BookProductInfo> {
                new BookProductInfo {
                    Book = newBook
                }
            };
            var library = new LibraryRepository(availableBooks, dependencyService);

            var addResult = library.AddNewBook(newBook, price);

            Assert.False(addResult);

            var addedBook = library.AvailableBooks.FirstOrDefault(item => item.Book.ISBN == isbn);

            Assert.Equal(1, addedBook.Quantity);
        }
        public void AddNewBookSuccess(string isbn, string name, double price)
        {
            var newBook = new Book {
                ISBN = isbn, Name = name
            };

            // Mock the validators
            var mockValidator = new Mock <IValidationService>();

            mockValidator.Setup(x => x.isValidBook(newBook)).Returns(true);
            mockValidator.Setup(x => x.IsValidQuantity(1)).Returns(true);
            mockValidator.Setup(x => x.IsValidPrice(price)).Returns(true);
            var dependencyService = new DependencyService();

            dependencyService.Register <IValidationService>(mockValidator.Object);
            var availableBooks = new List <BookProductInfo>();
            var library        = new LibraryRepository(availableBooks, dependencyService);

            var addResult = library.AddNewBook(newBook, price);

            Assert.True(addResult);
            var addedBook = Assert.Single(library.AvailableBooks);

            Assert.NotNull(addedBook);

            Assert.Equal(isbn, addedBook.Book.ISBN);
            Assert.Equal(name, addedBook.Book.Name);
            Assert.Equal(price, addedBook.BorrowPrice);
        }
        public void AddNewBookAllValidationsFailedNotAlteringTheList(string isbn, string name, double price)
        {
            var newBook = new Book {
                ISBN = isbn, Name = name
            };

            var mockValidator = new Mock <IValidationService>();

            mockValidator.Setup(x => x.isValidBook(newBook)).Returns(false);
            mockValidator.Setup(x => x.IsValidQuantity(1)).Returns(false);
            mockValidator.Setup(x => x.IsValidPrice(price)).Returns(false);
            var dependencyService = new DependencyService();

            dependencyService.Register <IValidationService>(mockValidator.Object);
            var availableBooks = new List <BookProductInfo>();
            var library        = new LibraryRepository(availableBooks, dependencyService);

            var addResult = library.AddNewBook(newBook, price);

            Assert.False(addResult);
            Assert.Empty(library.AvailableBooks);
        }
        public async Task AddNewBook_OK()
        {
            //Arrange
            BookDomain books = new BookDomain();

            var entity = Create <BookDomain>(new BookDomain
            {
                BookId     = 101,
                BookAuthor = "Rahul",
                BookName   = "c#",
                BookType   = "1",
            });

            //Act
            using (var _context = new LibraryContextMemory(_configuration))
            {
                var libraryRepository = new LibraryRepository(_context);
                var result            = await libraryRepository.AddNewBook(entity);

                // Assert
                result.Should().NotBeNull("Must contain a result");
            }
        }