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()); }
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); }