コード例 #1
0
        public async Task RetornaSomenteLivrosAtivosAsync()
        {
            var data = new List <Livro>
            {
                new Livro {
                    Nome = "Livro A", Status = true
                },
                new Livro {
                    Nome = "Livro B", Status = false
                },
                new Livro {
                    Nome = "Livro C", Status = true
                },
            }.AsQueryable();

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

            mockSet.As <IDbAsyncEnumerable <Livro> >()
            .Setup(m => m.GetAsyncEnumerator())
            .Returns(new TestDbAsyncEnumerator <Livro>(data.GetEnumerator()));

            mockSet.As <IQueryable <Livro> >()
            .Setup(m => m.Provider)
            .Returns(new TestDbAsyncQueryProvider <Livro>(data.Provider));

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

            var mockContext = new Mock <LivroContext>();

            mockContext.Setup(c => c.Livros).Returns(mockSet.Object);

            var service = new LivroService(mockContext.Object);
            var livros  = await service.GetLivrosAtivosAsync();

            Assert.AreEqual(2, livros.Count);
            Assert.AreEqual("Livro A", livros[0].Nome);
            Assert.AreEqual("Livro C", livros[1].Nome);
        }
コード例 #2
0
 public async Task <ActionResult> IndexAsync()
 {
     return(View(await livroService.GetLivrosAtivosAsync()));
 }