Exemple #1
0
        public void Devo_Conseguir_Remover_Um_Item()
        {
            Servico servico1 = ServicoStub.GetInstance(1, "serviço 1", 1);
            Servico servico2 = ServicoStub.GetInstance(2, "serviço 2", 2);

            Atendimento atendimento = new Atendimento(DateTime.Now, this._empresaValida, this._clienteValido, this._fpagtoValida);

            atendimento.AdicionarItem(servico1, 1m, 1);
            atendimento.AdicionarItem(servico2, 2m, 2);

            // Primeiro verifico se foram adicionados mesmo os dois itens
            Assert.AreEqual(2, atendimento.Itens.Count());

            atendimento.RemoverItem(servico1);

            // Depois verifico se ficou apenas um item
            Assert.AreEqual(1, atendimento.Itens.Count());

            // Verifico se item é o serviço dois, pois eu tirei o serviço 1
            foreach (ItemAtendimento i in atendimento.Itens)
            {
                Assert.AreEqual(2, i.Servico.Id);
                Assert.AreEqual(2m, i.ValorUnitario);
                Assert.AreEqual(2, i.Quantidade);
            }

            // Removo o serviço e verifico se não ficou nenhum item
            atendimento.RemoverItem(servico2);

            Assert.AreEqual(0, atendimento.Itens.Count());
        }
Exemple #2
0
        public void Ao_Movimentar_Um_Item_Deve_Calcular_O_Desconto_E_O_Acrescimo_Pelo_Percentual_Da_Forma_De_Pagamento()
        {
            // Primeiro testo uma forma de pagamento que não tem nenhum percentual. Nem de acréscimo nem de desconto.
            var formaPagamentoSemDescontoSemAcrescimo = new Mock <FormaPagamento>();

            formaPagamentoSemDescontoSemAcrescimo.Setup(f => f.Id)
            .Returns(1);
            formaPagamentoSemDescontoSemAcrescimo.Setup(f => f.PercentualAcrescimo)
            .Returns(0);
            formaPagamentoSemDescontoSemAcrescimo.Setup(f => f.PercentualDesconto)
            .Returns(0);

            Servico servico1 = ServicoStub.GetInstance(1, "serviço 1", 1);
            Servico servico2 = ServicoStub.GetInstance(2, "serviço 2", 2);

            Atendimento atendimento = new Atendimento(DateTime.Now, this._empresaValida, this._clienteValido, formaPagamentoSemDescontoSemAcrescimo.Object);

            atendimento.AdicionarItem(servico1, 10.50m, 3);
            Assert.AreEqual(0, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(0, atendimento.DescontoFormaPagamento);

            atendimento.AdicionarItem(servico2, 22m, 7);
            Assert.AreEqual(0, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(0, atendimento.DescontoFormaPagamento);

            atendimento.AdicionarItem(servico1, 11m, 4);
            Assert.AreEqual(0, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(0, atendimento.DescontoFormaPagamento);

            // Depois testo em uma forma de pagamento que tem percentual de acréscimo e de desconto
            var formaPagamento = new Mock <FormaPagamento>();

            formaPagamento.Setup(f => f.Id)
            .Returns(1);
            formaPagamento.Setup(f => f.PercentualAcrescimo)
            .Returns(10);
            formaPagamento.Setup(f => f.PercentualDesconto)
            .Returns(20);

            atendimento = new Atendimento(DateTime.Now, this._empresaValida, this._clienteValido, formaPagamento.Object);

            atendimento.AdicionarItem(servico1, 10, 3);             // 30
            Assert.AreEqual(3m, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(6m, atendimento.DescontoFormaPagamento);

            atendimento.AdicionarItem(servico2, 22m, 7);           // 154 184
            Assert.AreEqual(18.4m, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(36.8m, atendimento.DescontoFormaPagamento);

            atendimento.RemoverItem(servico2);                     // 154 30
            Assert.AreEqual(3m, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(6m, atendimento.DescontoFormaPagamento);

            atendimento.AdicionarItem(servico1, 11m, 4);           // 44
            Assert.AreEqual(4.4m, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(8.8m, atendimento.DescontoFormaPagamento);

            atendimento.AdicionarItem(servico2, 1m, 10);           // 10 54
            Assert.AreEqual(5.4m, atendimento.AcrescimoFormaPagamento);
            Assert.AreEqual(10.8m, atendimento.DescontoFormaPagamento);
        }