public void Setup()
        {
            listProdutos.Add(FactoryProduto.Constroi());

            var mapperConfig = new MapperConfiguration(mc => {
                mc.AddProfile(new MappingProfile());
            });

            _mapper = mapperConfig.CreateMapper();

            var mUnW = new Mock <IUnitOfWork>();

            mUnW.Setup(u => u.Commit())
            .Callback(() => {
                Console.WriteLine("Teste Commited....");
            });

            _uow = mUnW.Object;

            var mRepositorio = new Mock <IProdutoRepositorio>();

            mRepositorio.Setup(u => u.Add(It.IsAny <Produto>()))
            .Callback((Produto i) => listProdutos.Add(i));

            mRepositorio.Setup(u => u.GetAll())
            .ReturnsAsync(listProdutos.AsEnumerable <Produto>());

            _repositorio = mRepositorio.Object;

            _produtoService = new ProdutoService(_repositorio, _uow, _mapper);
        }
        public static IList <Produto> Constroi(int quantidade)
        {
            var produtos = new List <Produto>();

            for (var i = 0; i < quantidade; i++)
            {
                produtos.Add(FactoryProduto.Constroi());
            }

            return(produtos);
        }
        public void Inclui_novo_produto_no_banco()
        {
            //Arrange
            var quantidadeAntes = listProdutos.Count();
            var produto         = FactoryProduto.Constroi();

            // Act
            _repositorio.Add(produto);

            // Assert
            var quantidadeDepois = listProdutos.Count();

            Assert.Greater(quantidadeDepois, quantidadeAntes, $"Quantidade antes {quantidadeAntes} e depois {quantidadeDepois}");
        }