Esempio n. 1
0
        static void Main(string[] args)
        {
            IPedidoRepositorio  pedidoRepositorio  = new PedidoRepositorio();
            IProdutoRepositorio produtoRepositorio = new ProdutoRepositorio();
            IClienteRepositorio clienteRepositorio = new ClienteRepositorio();

            Cliente cliente = clienteRepositorio.BuscarClientePorId(1);

            var     pedido = new Pedido(cliente);
            Produto produtoParaAdicionar = produtoRepositorio.BuscarProdutoPorId(1);
            int     quantidadeDesejada   = 1;

            pedido.AdicionarProduto(produtoParaAdicionar, quantidadeDesejada);

            PedidoServico pedidoServico =
                ServicoInjecaoDependencia.CriarServicoPedido();

            pedidoServico.FecharPedido(pedido);
        }
        public void DeveFecharOPedidoEDebitarItensDoEstoque()
        {
            IClienteRepositorio clienteRepositorio = new ClienteRepositorioMock();
            IProdutoRepositorio produtoRepositorio = new ProdutoRepositorioMock();
            IPedidoRepositorio  pedidoRepositorio  = new PedidoRepositorioMock();
            IServicoEmail       servicoEmail       = new ServicoEmailMock();

            var pedidoServico = new PedidoServico(pedidoRepositorio,
                                                  servicoEmail);


            Cliente cliente      = clienteRepositorio.BuscarClientePorId(1);
            Produto espadaMagica = produtoRepositorio.BuscarProdutoPorId(1);
            Pedido  pedido       = new Pedido(cliente);

            pedido.AdicionarProduto(espadaMagica, 1);

            int quantidadeAtualDeEstoque = espadaMagica.QuantidadeEstoque;

            pedidoServico.FecharPedido(pedido);

            Assert.AreEqual(4, espadaMagica.QuantidadeEstoque);
        }