Esempio n. 1
0
        public void RemoverItem_PedidoCancelado_DeveFalhar()
        {
            //Arrange
            Pedido pedido = new PedidoTestBuilder().Build().Value;

            pedido.AdicionarItem(2, new Quantidade(10), (Preco)1.99m);
            pedido.CancelarPedido();

            //Act
            Result result = pedido.RemoverItem(1);

            //Assert
            result.IsFailure.ShouldBeTrue();
            result.Error.ShouldContain(PedidosConstantes.PedidoCanceladoNaoPodeSerAlterado);
            pedido.Status.ShouldBe(StatusPedido.Cancelado);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        public void RemoverItem_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.RemoverItem(1);

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