Example #1
0
        public async Task <bool> Adicionar(Pedido pedido)
        {
            if (!ExecutarValidacao(new PedidoValidation(), pedido))
            {
                return(false);
            }

            if (!_clienteRepository.Buscar(c => c.Id == pedido.ClienteId).Result.Any())
            {
                Notificar("O cliente informado não foi encontrado.");
                return(false);
            }

            if (!_pedidoBusiness.ValidarQuantidadeMaximaPedido(pedido))
            {
                Notificar("Informe pelo menos menos uma pizza.");
                return(false);
            }

            if (!_pedidoBusiness.ValidarQuantidadeSaboresPizza(pedido))
            {
                Notificar("Cada pizza pode ter até dois sabores.");
                return(false);
            }

            pedido.ValorTotal = _pedidoBusiness.CalcularValorUmSaborPizza(pedido) +
                                _pedidoBusiness.CalcularValorDoisSaboresPizza(pedido);

            await _pedidoRepository.Adicionar(pedido);

            return(true);
        }
Example #2
0
        public void DeveValidarPedidoComNoMaximoDezPizzas()
        {
            //Arrange
            var listaPedidoPizzas = new List <PedidoPizza>();

            for (int i = 0; i < 10; i++)
            {
                _pedidoPizza.PedidoId  = Guid.NewGuid();
                _pedidoPizza.PizzaId   = Guid.NewGuid();
                _pedidoPizza.TipoPizza = TipoPizza.Inteira;
                listaPedidoPizzas.Add(_pedidoPizza);
            }

            _pedido.PedidoPizzas = listaPedidoPizzas;

            //Act
            var retorno = _pedidoBusiness.ValidarQuantidadeMaximaPedido(_pedido);

            //Assert
            Assert.True(retorno);
        }