コード例 #1
0
        public void FinalizeAVendaCalculandoValorTotalTeste()
        {
            var venda           = CadastreUmaVenda();
            var produto1        = ProdutoTeste.CadastreUmProduto();
            var produto2        = ProdutoTeste.CadastreUmProduto();
            var produtoNaVenda1 = ProdutoNaVendaTestes.CadastreUmProdutoNaVenda(venda, produto1, 11);
            var produtoNaVenda2 = ProdutoNaVendaTestes.CadastreUmProdutoNaVenda(venda, produto2, 2);

            var servico = Servico as ServicoDeVenda;

            servico.FinalizeAVenda(venda);

            var produtosSalvos = servico.ObtenhaProdutosDaVenda(venda);
            var valorTotal     = 0m;

            foreach (var produto in produtosSalvos)
            {
                valorTotal += produto.Desconto;
            }

            Assert.Equal(venda.ValorTotal, valorTotal);

            Servico.Remova(venda.Codigo);
            ProdutoTeste.RemovaUmProduto(produto1.Codigo);
            ProdutoTeste.RemovaUmProduto(produto2.Codigo);
            ProdutoNaVendaTestes.RemovaUmProdutoNaVenda(produtoNaVenda1.Codigo);
            ProdutoNaVendaTestes.RemovaUmProdutoNaVenda(produtoNaVenda2.Codigo);
        }
コード例 #2
0
        public void CadastraProdutoNaVendaFechadaErro()
        {
            var servico        = Servico as ServicoDeProdutoNaVenda;
            var venda          = VendaTeste.CadastreUmaVenda();
            var produtoNaVenda = CriaProdutoEFinalizaAVenda(venda);

            var produto = ProdutoTeste.CadastreUmProduto();

            var ex = Assert.Throws <Exception>(() => servico.Cadastre(venda.Codigo, produto.Codigo, 1));

            Assert.Equal(ex.Message, ConstantesDeValidacaoDoModel.NAO_EH_POSSIVEL_ALTERAR_UMA_VENDA_FECHADA);
        }
コード例 #3
0
        private ProdutoNaVenda CriaProdutoEFinalizaAVenda(Venda venda)
        {
            var servico        = Servico as ServicoDeProdutoNaVenda;
            var servicoDeVenda = FabricaDeServico.Crie <Venda>() as ServicoDeVenda;

            var produto = ProdutoTeste.CadastreUmProduto();

            var produtoNaVenda = servico.Cadastre(venda.Codigo, produto.Codigo, 1);

            servicoDeVenda.FinalizeAVenda(venda);

            return(produtoNaVenda);
        }
コード例 #4
0
        public void AdicionarVendaNaoExisteNoProdutoNaVendaErro()
        {
            var servico = Servico as ServicoDeProdutoNaVenda;

            var codigoDaVenda = ObtenhaUmCodigo();
            var produto       = ProdutoTeste.CadastreUmProduto();
            int quantidade    = 1;

            var ex = Assert.Throws <Exception>(() => servico.Cadastre(codigoDaVenda, produto.Codigo, quantidade));

            Assert.Equal(ex.Message, ConstantesDeValidacaoDoModel.A_VENDA_INFORMADA_NAO_FOI_ENCONTRADA);

            ProdutoTeste.RemovaUmProduto(produto.Codigo);
        }
コード例 #5
0
        public void AdicionarProdutoNaVenda()
        {
            var servico = Servico as ServicoDeProdutoNaVenda;

            var venda      = VendaTeste.CadastreUmaVenda();
            var produto    = ProdutoTeste.CadastreUmProduto();
            int quantidade = 1;

            var produtoNaVenda = servico.Cadastre(venda.Codigo, produto.Codigo, quantidade);

            Assert.NotEqual(produtoNaVenda.Codigo, 0);

            servico.Remova(produtoNaVenda.Codigo);
            VendaTeste.RemovaUmaVenda(venda.Codigo);
            ProdutoTeste.RemovaUmProduto(produto.Codigo);
        }
コード例 #6
0
        public void AdicionarProdutoNaVendaECalculaODeconto(int quantidadeDeProdutos, decimal descontoEsperado)
        {
            var servico = Servico as ServicoDeProdutoNaVenda;

            var venda   = VendaTeste.CadastreUmaVenda();
            var produto = ProdutoTeste.CadastreUmProduto();

            var produtoNaVenda = servico.Cadastre(venda.Codigo, produto.Codigo, quantidadeDeProdutos);

            var valorTotal = quantidadeDeProdutos * produto.Valor;
            var desconto   = valorTotal * (descontoEsperado / 100);

            Assert.NotEqual(produtoNaVenda.Codigo, 0);
            Assert.Equal(produtoNaVenda.Desconto, desconto);

            servico.Remova(produtoNaVenda.Codigo);
            VendaTeste.RemovaUmaVenda(venda.Codigo);
            ProdutoTeste.RemovaUmProduto(produto.Codigo);
        }
コード例 #7
0
        public void FinalizeAVendaTeste()
        {
            var venda           = CadastreUmaVenda();
            var produto1        = ProdutoTeste.CadastreUmProduto();
            var produto2        = ProdutoTeste.CadastreUmProduto();
            var produtoNaVenda1 = ProdutoNaVendaTestes.CadastreUmProdutoNaVenda(venda, produto1, 1);
            var produtoNaVenda2 = ProdutoNaVendaTestes.CadastreUmProdutoNaVenda(venda, produto2, 1);

            var servico = Servico as ServicoDeVenda;

            servico.FinalizeAVenda(venda);

            var vendaBancoDeDados = servico.Consulte(venda.Codigo);

            Assert.Equal(vendaBancoDeDados.Status, StatusDaVenda.FECHADA);

            Servico.Remova(venda.Codigo);
            ProdutoTeste.RemovaUmProduto(produto1.Codigo);
            ProdutoTeste.RemovaUmProduto(produto2.Codigo);
            ProdutoNaVendaTestes.RemovaUmProdutoNaVenda(produtoNaVenda1.Codigo);
            ProdutoNaVendaTestes.RemovaUmProdutoNaVenda(produtoNaVenda2.Codigo);
        }
コード例 #8
0
        public void RemoverProdutoNaVenda()
        {
            var servico = Servico as ServicoDeProdutoNaVenda;

            var produto1 = ProdutoTeste.CadastreUmProduto();
            var produto2 = ProdutoTeste.CadastreUmProduto();
            var venda    = VendaTeste.CadastreUmaVenda();

            var produtoNaVenda1 = servico.Cadastre(venda.Codigo, produto1.Codigo, 1);
            var produtoNaVenda2 = servico.Cadastre(venda.Codigo, produto2.Codigo, 1);

            servico.Remova(produtoNaVenda1.Codigo);
            servico.Remova(produtoNaVenda2.Codigo);

            var produtoNaVenda1DoBancoDeDados = servico.Consulte(produtoNaVenda1.Codigo);
            var produtoNaVenda2DoBancoDeDados = servico.Consulte(produtoNaVenda2.Codigo);

            Assert.Equal(produtoNaVenda1DoBancoDeDados, null);
            Assert.Equal(produtoNaVenda2DoBancoDeDados, null);

            VendaTeste.RemovaUmaVenda(venda.Codigo);
            ProdutoTeste.RemovaUmProduto(produto1.Codigo);
            ProdutoTeste.RemovaUmProduto(produto2.Codigo);
        }