public void AdicionarItem_PedidoCancelado_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m); pedido.CancelarPedido(); //Act Result result = pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.PedidoCanceladoNaoPodeSerAlterado); pedido.Status.ShouldBe(StatusPedido.Cancelado); }
public void AdicionarItem_ItemValido_DeveTerSucesso() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.AdicionarItem(2, (Quantidade)1, (Preco)1.99m); //Assert result.IsSuccess.ShouldBeTrue(); pedido.Itens.Count.ShouldBe(2); pedido.Total.Valor.ShouldBe(21.89m); pedido.Status.ShouldBe(StatusPedido.EmAndamento); }
public void AdicionarItem_ItemInvalido_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.AdicionarItem(2, null, (Preco)1.99m); //Assert result.IsFailure.ShouldBeTrue(); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(19.90m); pedido.Status.ShouldBe(StatusPedido.EmAndamento); }
public void AdicionarItem_PedidoFechado_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m); pedido.FecharPedido(5, 0, 0, TipoDesconto.Valor); //Act Result result = pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.PedidoFechadoNaoPodeSerAlterado); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(19.9m); pedido.Status.ShouldBe(StatusPedido.Fechado); }
public void AdicionarItem_PrimeiroItemEhInvalido_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; //Act Result result = pedido.AdicionarItem(2, null, (Preco)1.99m); //Assert result.IsFailure.ShouldBeTrue(); pedido.Itens.Count.ShouldBe(0); pedido.Total.Valor.ShouldBe(0); pedido.Status.ShouldBe(StatusPedido.Novo); }
public void FecharPedido_ValorComissaoInvalido_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, new Quantidade(1), new Preco(100)); //Act Result result = pedido.FecharPedido(-1, 0, 0, TipoDesconto.Valor); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PercentualConstantes.PercentualNaoDeveSerMenorQueZero); pedido.Status.ShouldBe(StatusPedido.EmAndamento); }
public void FecharPedido_PercentualDescontoAcimaLimite_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, new Quantidade(1), new Preco(100)); //Act Result result = pedido.FecharPedido(0, 0, (PedidosConstantes.PercentualMaximo + 0.1m) * 100, TipoDesconto.Percentual); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.PercentualDescontoNaoDeveUltrapassarPercentualMaximo); pedido.Status.ShouldBe(StatusPedido.EmAndamento); }
public void FecharPedido_ValoresValidos_DeveTerSucesso(decimal valorItem, decimal desconto, TipoDesconto tipo, decimal gorjeta, decimal comissao, decimal totalEsperado) { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, new Quantidade(1), new Preco(valorItem)); //Act Result result = pedido.FecharPedido(comissao, gorjeta, desconto, tipo); //Assert result.IsSuccess.ShouldBeTrue(); Math.Round(pedido.Total, 2).ShouldBe(totalEsperado); pedido.Status.ShouldBe(StatusPedido.Fechado); }
public void AlterarItem_ItemValido_DeveTerSucesso() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.AlterarItem(0, (Quantidade)10, (Preco)2.99m); //Assert result.IsSuccess.ShouldBeTrue(); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(29.90m); }
public void FecharPedido_StatusDiferenteEmAndamento_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, new Quantidade(1), new Preco(100)); pedido.CancelarPedido(); //Act Result result = pedido.FecharPedido(5, 0, 0, TipoDesconto.Valor); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.PedidoDeveEstarEmAndamento); pedido.Status.ShouldBe(StatusPedido.Cancelado); }
public void RemoverItem_IdValido_DeveTerSucesso() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; int idItem = 0; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.RemoverItem(idItem); //Assert result.IsSuccess.ShouldBeTrue(); pedido.Itens.Count.ShouldBe(0); pedido.Total.Valor.ShouldBe(0); }
public void AlterarItem_ItemInvalido_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.AlterarItem(0, null, (Preco)2.99m); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.ItensPedidoQuantidadeEhObrigatorio); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(19.90m); }
public void RemoverItem_IdInvalido_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; int idItem = 1; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.RemoverItem(idItem); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(string.Format(PedidosConstantes.PedidosItemInformadoNaoFoiLocalizado, idItem)); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(19.90m); }