public async Task Deve_Retornar_Consultas_De_Produto()
        {
            var options = new DbContextOptionsBuilder <OficinaPitStopContext>()
                          .UseInMemoryDatabase("Testes_Consulta_Produtos")
                          .Options;

            using (var context = new OficinaPitStopContext(options))
            {
                PreencheProdutos(context);
                var produtoRepository = new ProdutoRepository(context);
                var produtos          = await produtoRepository.ObterTodos();

                Assert.NotEmpty(produtos);

                var produto = produtos.First();

                var retornoPorId = produtoRepository.ObterPorId(produto.Codigo);
                Assert.NotNull(retornoPorId);

                var retornoPorNome = await produtoRepository.ObterPorNome(produto.Descricao);

                Assert.NotEmpty(retornoPorNome);

                var codigoMarcas    = new List <int>(new[] { produto.CodigoMarca });
                var retornoPorMarca = await produtoRepository.ObterPorCodigoMarca(codigoMarcas);

                Assert.NotEmpty(retornoPorMarca);
            }
        }
        private void PreencheProdutos(OficinaPitStopContext context)
        {
            var produtos = new[]
            {
                CriaProduto(1),
                CriaProduto(2)
            };

            context.Produtos.AddRange(produtos);
            context.SaveChanges();
        }
        private void PreencheMarcas(OficinaPitStopContext context)
        {
            var marcas = new[]
            {
                CriaMarca(1),
                CriaMarca(2)
            };

            context.Marca.AddRange(marcas);
            context.SaveChanges();
        }
        public void Deve_Adicionar_Atualizar_E_Deletar_Produto()
        {
            var options = new DbContextOptionsBuilder <OficinaPitStopContext>()
                          .UseInMemoryDatabase("Testes_Modifica_Produto")
                          .Options;

            using (var context = new OficinaPitStopContext(options))
            {
                //Cria
                var produtoRepository = new ProdutoRepository(context);
                var produto           = CriaProduto(1);
                var retornoAdiciona   = produtoRepository.Adiciona(produto);
                Assert.True(retornoAdiciona);

                var retornoPorId = produtoRepository.ObterPorId(produto.Codigo);
                Assert.Equal(retornoPorId, produto);
                Assert.Equal(produto.Preco, retornoPorId.Preco);
                Assert.Equal(produto.Quantidade, retornoPorId.Quantidade);

                //Atualiza
                var descricaoAntigaProduto = retornoPorId.Descricao;
                var novaDescricaoProduto   = "Nova descrição produto!";
                produto.Descricao = novaDescricaoProduto;
                var retornoAtualiza = produtoRepository.Atualiza(produto);
                Assert.True(retornoAtualiza);
                retornoPorId = produtoRepository.ObterPorId(produto.Codigo);

                Assert.NotEqual(descricaoAntigaProduto, retornoPorId.Descricao);
                Assert.Equal(novaDescricaoProduto, retornoPorId.Descricao);

                //Deleta
                var retornoDelete = produtoRepository.Deleta(produto);
                Assert.True(retornoDelete);

                retornoPorId = produtoRepository.ObterPorId(produto.Codigo);
                Assert.Null(retornoPorId);
            }
        }
        public void Deve_Adicionar_Atualizar_E_Deletar_Marca()
        {
            var options = new DbContextOptionsBuilder <OficinaPitStopContext>()
                          .UseInMemoryDatabase("Testes_Modifica_Marcas")
                          .Options;

            using (var context = new OficinaPitStopContext(options))
            {
                //Cria
                var marcaRepository = new MarcaRepository(context);
                var marca           = CriaMarca(1);
                var retornoAdiciona = marcaRepository.Adiciona(marca);
                Assert.True(retornoAdiciona);

                var retornoPorId = marcaRepository.ObterPorId(marca.CodigoMarca);
                Assert.NotNull(retornoPorId);

                //Atualiza
                var descricaoAntigaMarca = retornoPorId.Descricao;
                var novaDescricaoMarca   = "Nova descrição marca!";
                marca.Descricao = novaDescricaoMarca;
                var retornoAtualiza = marcaRepository.Atualiza(marca);
                Assert.True(retornoAtualiza);

                retornoPorId = marcaRepository.ObterPorId(marca.CodigoMarca);
                Assert.NotEqual(retornoPorId.Descricao, descricaoAntigaMarca);
                Assert.Equal(retornoPorId.Descricao, novaDescricaoMarca);

                //Deleta
                var retornoDelete = marcaRepository.Deleta(marca);
                Assert.True(retornoDelete);

                retornoPorId = marcaRepository.ObterPorId(marca.CodigoMarca);
                Assert.Null(retornoPorId);
            }
        }
        public async Task Deve_Retornar_Consultas_De_Marca()
        {
            var options = new DbContextOptionsBuilder <OficinaPitStopContext>()
                          .UseInMemoryDatabase("Testes_Consulta_Marcas")
                          .Options;

            using (var context = new OficinaPitStopContext(options))
            {
                PreencheMarcas(context);
                var marcaRepository = new MarcaRepository(context);
                var marcas          = await marcaRepository.ObterTodos();

                Assert.NotEmpty(marcas);

                var marca = marcas.First();

                var retornoPorId = marcaRepository.ObterPorId(marca.CodigoMarca);
                Assert.NotNull(retornoPorId);

                var retornoPorNome = await marcaRepository.ObterPorNome(marca.Descricao);

                Assert.NotEmpty(retornoPorNome);
            }
        }
 public MarcaRepository(OficinaPitStopContext context)
 {
     _context = context;
 }
Beispiel #8
0
 public ProdutoRepository(OficinaPitStopContext context)
 {
     _context = context;
 }