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 AlterarItem_PedidoCancelado_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m); pedido.CancelarPedido(); //Act Result result = pedido.AlterarItem(2, new Quantidade(1), (Preco)1.99m); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(PedidosConstantes.PedidoCanceladoNaoPodeSerAlterado); pedido.Status.ShouldBe(StatusPedido.Cancelado); }
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 AlterarItem_ItemInexistente_DeveFalhar() { //Arrange Pedido pedido = new PedidoTestBuilder().Build().Value; int idItem = 1; pedido.AdicionarItem(1, (Quantidade)10, (Preco)1.99m); //Act Result result = pedido.AlterarItem(idItem, null, (Preco)2.99m); //Assert result.IsFailure.ShouldBeTrue(); result.Error.ShouldContain(string.Format(PedidosConstantes.PedidosItemInformadoNaoFoiLocalizado, idItem)); pedido.Itens.Count.ShouldBe(1); pedido.Total.Valor.ShouldBe(19.90m); }
public void AlterarItem_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.AlterarItem(2, new Quantidade(1), (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); }