public async Task GetUserOrders()
        {
            //Arrange
            var user = new User
            {
                Email    = "*****@*****.**",
                Password = "******"
            };
            var purchaseBooks = new TestAsyncEnumerable <PurchasedBook>(new[] {
                new PurchasedBook
                {
                    PurchasedOn = DateTime.Now,
                    PaymentMode = "Card",
                    Book        = new Book
                    {
                        AuthorName = "Gurwinder",
                        WrittenIn  = "English",
                        Name       = "Test",
                    }
                },
                new PurchasedBook
                {
                    PurchasedOn = DateTime.Now,
                    PaymentMode = "Card",
                    Book        = new Book
                    {
                        AuthorName = "Gurwinder",
                        WrittenIn  = "Hindi",
                        Name       = "Test",
                    }
                }
            }).AsQueryable();

            var sut = new UserOrderQueryHandler(_mockPurchasedBookRepository.Object, _mockUserRepository.Object, _mapper);

            _mockUserRepository.Setup(x => x.FindAsync(It.IsAny <Expression <Func <User, bool> > >(), It.IsAny <CancellationToken>())).ReturnsAsync(user);
            _mockPurchasedBookRepository.Setup(x => x.FindAll(It.IsAny <Expression <Func <PurchasedBook, bool> > >())).Returns(purchaseBooks);

            //Act
            var result = await sut.Handle(new UserOrderQuery { UserEmail = "*****@*****.**" }, default(CancellationToken));

            //Assert
            result.Should().BeOfType <List <UserOrderModel> >();
            result.Should().HaveCount(purchaseBooks.Count());
        }
示例#2
0
        public async Task GetBooksTest()
        {
            // Arrange
            var books = new TestAsyncEnumerable <Book>(new []
            {
                new Book {
                    Name = "Half Girlfriend", AuthorName = "Chetan Bhagat", Cost = 900, PublishedOn = DateTime.Now.AddYears(-6), WrittenIn = "English", Description = "Lorum Ipsum is dummy data"
                },
                new Book {
                    Name = "Five Point Someone", AuthorName = "Chetan Bhagat", Cost = 1200, PublishedOn = DateTime.Now.AddYears(-16), WrittenIn = "English", Description = "Lorum Ipsum is dummy data"
                }
            }).AsQueryable();

            var sut = new BookListQueryHandler(_mockBookRepository.Object, _mapper);

            _mockBookRepository.Setup(x => x.GetAll()).Returns(books);

            // Act
            var result = await sut.Handle(new BookListQuery(), CancellationToken.None);

            // Assert
            result.Should().BeOfType <List <BookListViewModel> >();
            result.Should().HaveCount(books.Count());
        }