Beispiel #1
0
        private BookPublisherService CreateBookPublisherService()
        {
            Guid userId  = Guid.Parse(User.Identity.GetUserId());
            var  service = new BookPublisherService(userId);

            return(service);
        }
        public void TestCheckBookDetailsForAvailabilityWrongBookId()
        {
            var publisherData = new List <BookPublisher>
            {
                new BookPublisher
                {
                    Id          = 1,
                    BookId      = 1,
                    PublisherId = 1,
                    ForLecture  = 20,
                    ForRent     = 20,
                    RentCount   = 1
                }
            };

            var publisherDataQueryable = publisherData.AsQueryable();

            var mockSetBp = new Mock <DbSet <BookPublisher> >();

            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Provider).Returns(publisherDataQueryable.Provider);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Expression).Returns(publisherDataQueryable.Expression);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.ElementType).Returns(publisherDataQueryable.ElementType);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.GetEnumerator()).Returns(publisherDataQueryable.GetEnumerator());

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.BookPublisher).Returns(mockSetBp.Object);

            this.service = new BookPublisherService(mockContext.Object);

            Assert.ThrowsException <ObjectNotFoundException>(() => this.service.CheckBookDetailsForAvailability(123));
        }
        public void TestUpdateBookPublisher()
        {
            var mockSet = new Mock <DbSet <BookPublisher> >();

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.Set <BookPublisher>()).Returns(mockSet.Object);

            this.bookPublisher.ReleaseDate = DateTime.Now;

            this.service = new BookPublisherService(mockContext.Object);
            var result = this.service.Update(this.bookPublisher);

            try
            {
                mockSet.Verify(m => m.Attach(It.IsAny <BookPublisher>()), Times.Once());
                mockContext.Verify(m => m.SaveChanges(), Times.Once());
            }
            catch (MockException e)
            {
                Assert.Fail(e.Message);
            }

            Assert.IsNotNull(result);
            Assert.IsTrue(result.IsValid);
            Assert.IsTrue(result.Errors.Count == 0);
        }
        public void TestCheckBookDetailsForAvailabilityFailAlreadyTooManyRented()
        {
            var publisherData = new List <BookPublisher>
            {
                new BookPublisher
                {
                    Id          = 1,
                    BookId      = 1,
                    PublisherId = 1,
                    ForLecture  = 20,
                    ForRent     = 20,
                    RentCount   = 18
                }
            };

            var publisherDataQueryable = publisherData.AsQueryable();

            var mockSetBp = new Mock <DbSet <BookPublisher> >();

            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Provider).Returns(publisherDataQueryable.Provider);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Expression).Returns(publisherDataQueryable.Expression);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.ElementType).Returns(publisherDataQueryable.ElementType);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.GetEnumerator()).Returns(publisherDataQueryable.GetEnumerator());

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.BookPublisher).Returns(mockSetBp.Object);

            this.service = new BookPublisherService(mockContext.Object);

            var result = this.service.CheckBookDetailsForAvailability(publisherData[0].Id);

            Assert.IsNotNull(result);
            Assert.IsFalse(result);
        }
        public void TestGetAllVersionsOfBookSuccess()
        {
            var publisherData = new List <BookPublisher>
            {
                new BookPublisher
                {
                    BookId      = 1,
                    PublisherId = 1
                },
                new BookPublisher
                {
                    BookId      = 1,
                    PublisherId = 2,
                },
                new BookPublisher
                {
                    BookId      = 2,
                    PublisherId = 1
                }
            };

            var data = new List <Book>
            {
                new Book
                {
                    Id         = 1,
                    Name       = "Test Book",
                    Publishers = publisherData
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Book> >();

            mockSet.As <IQueryable <Book> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Book> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Book> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Book> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var publisherDataQueryable = publisherData.AsQueryable();

            var mockSetBp = new Mock <DbSet <BookPublisher> >();

            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Provider).Returns(publisherDataQueryable.Provider);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Expression).Returns(publisherDataQueryable.Expression);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.ElementType).Returns(publisherDataQueryable.ElementType);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.GetEnumerator()).Returns(publisherDataQueryable.GetEnumerator());

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.Books).Returns(mockSet.Object);
            mockContext.Setup(x => x.BookPublisher).Returns(mockSetBp.Object);

            this.service = new BookPublisherService(mockContext.Object);

            var result = this.service.GetAllEditionsOfBook(data.ElementAt(0).Id);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count(), 2);
        }
        public void TestGetAllVersionsOfBookFailsWrongBookId()
        {
            var publisherData = new List <BookPublisher>
            {
                new BookPublisher
                {
                    BookId      = 1,
                    PublisherId = 1
                },
                new BookPublisher
                {
                    BookId      = 1,
                    PublisherId = 2,
                },
                new BookPublisher
                {
                    BookId      = 2,
                    PublisherId = 1
                }
            };

            var data = new List <Book>
            {
                new Book
                {
                    Id         = 1,
                    Name       = "Test Book",
                    Publishers = publisherData
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <Book> >();

            mockSet.As <IQueryable <Book> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <Book> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <Book> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <Book> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var publisherDataQueryable = publisherData.AsQueryable();

            var mockSetBp = new Mock <DbSet <BookPublisher> >();

            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Provider).Returns(publisherDataQueryable.Provider);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.Expression).Returns(publisherDataQueryable.Expression);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.ElementType).Returns(publisherDataQueryable.ElementType);
            mockSetBp.As <IQueryable <BookPublisher> >().Setup(m => m.GetEnumerator()).Returns(publisherDataQueryable.GetEnumerator());

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.Books).Returns(mockSet.Object);
            mockContext.Setup(x => x.BookPublisher).Returns(mockSetBp.Object);

            this.service = new BookPublisherService(mockContext.Object);

            Assert.ThrowsException <ObjectNotFoundException>(() => this.service.GetAllEditionsOfBook(123));
        }
        public void TestCheckBookDetailsForAvailabilityFailsWrongParam()
        {
            var wrongParam = -1;

            var context = new Mock <LibraryContext>();

            var service = new BookPublisherService(context.Object);

            Assert.ThrowsException <LibraryArgumentException>(() => service.CheckBookDetailsForAvailability(wrongParam));
        }
        public void TestGetAllVersionsOfBookFailsWrongParam()
        {
            var wrongParam = -1;

            var context = new Mock <LibraryContext>();

            var service = new BookPublisherService(context.Object);

            Assert.ThrowsException <LibraryArgumentException>(() => service.GetAllEditionsOfBook(wrongParam));
        }
        public void TestGetAllBooksByTypeReceivesNull()
        {
            var data = new List <BookPublisher>
            {
                this.bookPublisher,
                new BookPublisher
                {
                    BookId      = 1,
                    RentCount   = 10,
                    Pages       = 200,
                    PublisherId = 2,
                    ReleaseDate = DateTime.Now,
                    Type        = BookType.Ebook
                },
                new BookPublisher
                {
                    BookId      = 1,
                    RentCount   = 10,
                    Pages       = 200,
                    PublisherId = 3,
                    ReleaseDate = DateTime.Now,
                    Type        = BookType.Ebook
                },
                new BookPublisher
                {
                    BookId      = 2,
                    RentCount   = 10,
                    Pages       = 200,
                    PublisherId = 1,
                    ReleaseDate = DateTime.Now,
                    Type        = BookType.Paperback
                }
            }.AsQueryable();

            var mockSet = new Mock <DbSet <BookPublisher> >();

            mockSet.As <IQueryable <BookPublisher> >().Setup(m => m.Provider).Returns(data.Provider);
            mockSet.As <IQueryable <BookPublisher> >().Setup(m => m.Expression).Returns(data.Expression);
            mockSet.As <IQueryable <BookPublisher> >().Setup(m => m.ElementType).Returns(data.ElementType);
            mockSet.As <IQueryable <BookPublisher> >().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator());

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.BookPublisher).Returns(mockSet.Object);

            this.service = new BookPublisherService(mockContext.Object);

            var bps = this.service.GetBooksByType(BookType.Audiobook);

            Assert.IsNotNull(bps);
            Assert.AreEqual(bps.Count(), 0);
        }
Beispiel #10
0
        public void TestDeleteBookPublisher()
        {
            var mockSet = new Mock <DbSet <BookPublisher> >();

            var mockContext = new Mock <LibraryContext>();

            mockContext.Setup(x => x.Set <BookPublisher>()).Returns(mockSet.Object);

            this.service = new BookPublisherService(mockContext.Object);
            this.service.Delete(this.bookPublisher);
            try
            {
                mockSet.Verify(m => m.Remove(It.IsAny <BookPublisher>()), Times.Once());
                mockContext.Verify(m => m.SaveChanges(), Times.Once());
            }
            catch (MockException e)
            {
                Assert.Fail(e.Message);
            }
        }