public void AoAcessarAPaginaDeListagemEOcorrerUmaExcecaoNaCamadaDeNegocios_OSistemaDeveNotificarAoUsuario()
        {
            var business = new Mock<IProductBusiness>();
            business.Setup(x => x.GetActiveProducts()).Throws<Exception>();

            _controller = new HomeController(business.Object);

            var result = _controller.Index() as ViewResult;

            Assert.NotNull(result);

            Assert.Contains("Erro", result.ViewData.Keys as ICollection);
            StringAssert.AreEqualIgnoringCase("Ocorreu um erro durante o processamento. Tente novamente mais tarde.", result.ViewData["Erro"] as string);
        }
        public void AoAcessarAPaginaDeListagemDeProdutos_OsProdutosDevemPossuirIdENaoDeveSerNegativo()
        {
            _controller = new HomeController(_business.Object);

            var result = _controller.Index() as ViewResult;

            Assert.NotNull(result); var list = ((ProductList)result.Model).Products;

            Assert.IsNotNull(list);

            Assert.IsNotEmpty(list);

            foreach (var produto in list)
            {
                Assert.IsTrue(produto.ProductId >= 0);
            }
        }
        public void AoAcessarAPaginaDeListagem_OsProdutosDevemVirDaCamadaDeNegocios()
        {
            var business = new Mock<IProductBusiness>();
            business.Setup(x => x.GetActiveProducts()).Returns(_listagemDeProdutosEntity);

            _controller = new HomeController(business.Object);

            _controller.Index();

            business.Verify(x => x.GetActiveProducts(), Times.AtLeastOnce());
        }
        public void AoAcessarAPaginaDeListagem_OsProdutosDevemPossuirYearEDeveSerMaiorDoQueZero()
        {
            _controller = new HomeController(_business.Object);

            var result = _controller.Index() as ViewResult;

            Assert.NotNull(result);

            var list = ((ProductList)result.Model).Products;

            Assert.IsNotNull(list);

            Assert.IsNotEmpty(list);

            foreach (var produto in list)
            {
                Assert.IsTrue(produto.Year > 0);
            }
        }
        public void AoAcessarAPaginaDeListagem_APaginaDevePossuirAListagemDeProdutos()
        {
            _controller = new HomeController(_business.Object);

            var result = _controller.Index() as ViewResult;

            Assert.NotNull(result);
            Assert.IsInstanceOf<ProductList>(result.Model);
        }