Пример #1
0
        public void AlugaLivroNok()
        {
            IQueryable <Livro> livrosLista = new List <Livro> {
                new Livro()
                {
                    Id = 1, Alugado = true, Ativo = true, AutorLivro = "Eu", DataLancamento = DateTime.Now, NomeLivro = "Livro do lobo"
                }
            }.AsQueryable <Livro>();

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

            mockSet.As <IQueryable <Livro> >().Setup(s => s.Provider).Returns(livrosLista.Provider);
            mockSet.As <IQueryable <Livro> >().Setup(s => s.Expression).Returns(livrosLista.Expression);
            mockSet.As <IQueryable <Livro> >().Setup(s => s.ElementType).Returns(livrosLista.ElementType);
            mockSet.As <IQueryable <Livro> >().Setup(s => s.GetEnumerator()).Returns(livrosLista.GetEnumerator());


            var mockContexto = new Mock <ProvaContext>();

            mockContexto.Setup(s => s.Livros).Returns(mockSet.Object);

            LivroNegocio livroNegocio = new LivroNegocio(mockContexto.Object);

            bool alugou = livroNegocio.AlugaLivro(1);

            Assert.IsFalse(alugou);
        }
Пример #2
0
        public ActionResult Index([Bind(Include = "Id,NomeLivro,AutorLivro,DataLancamento,Alugado")] LivroVM livroParameter)
        {
            if (livroParameter == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var livro = _livroNegocio.RetornaLivro(livroParameter.Id);

            if (livro == null)
            {
                return(HttpNotFound());
            }

            bool alugado = false;

            if (ModelState.IsValid)
            {
                alugado = _livroNegocio.AlugaLivro(livro.Id);
            }

            if (alugado)
            {
                livro.Mensagem = "Alugado com sucesso";
            }
            else
            {
                livro.Mensagem = "Não foi possível alugar pois já esta alugado.";
            }

            return(View(livro));
        }