Esempio n. 1
0
        public async Task CadastrarPedidoFreteNaoEncontrado()
        {
            var freteServiceMock = new FreteServicoMock();
            var freteServico     = freteServiceMock.ConfigurarObterFretePeloIdInexistente().Build();
            var obterFreteQuery  = new ObterFreteQuery(freteServico, new ObterFreteValidador(freteServico));

            var clienteServiceMock = new ClienteServicoMock();
            var clienteServico     = clienteServiceMock.ConfigurarObterClientePeloId().ConfigurarObterClientes().Build();
            var obterClientesQuery = new ObterClientesQuery(clienteServico);

            var produtoServiceMock = new ProdutoServicoMock();
            var produtoServico     = produtoServiceMock.ConfigurarObterProdutoPeloId().ConfigurarContarProdutosPorId().Build();
            var obterProdutoQuery  = new ObterProdutosQuery(produtoServico);

            var pedidoServiceMock = new PedidoServicoMock();
            var pedidoServico     = pedidoServiceMock.ConfigurarCadastrarSucesso().Build();

            var cadastrarCommand = new CadastrarPedidoCommand(pedidoServico,
                                                              obterFreteQuery,
                                                              obterClientesQuery,
                                                              obterProdutoQuery,
                                                              new CadastrarPedidoValidador(clienteServico, produtoServico));

            var resultado = await cadastrarCommand.Executar(cadastrarPedidoInputSucesso);

            Assert.GreaterOrEqual(1, resultado.NumeroPedido);
        }
Esempio n. 2
0
        public void CadastrarPedidoProdutoInexistente()
        {
            var freteServiceMock = new FreteServicoMock();
            var freteServico     = freteServiceMock.ConfigurarObterFretePeloId().Build();
            var obterFreteQuery  = new ObterFreteQuery(freteServico, new ObterFreteValidador(freteServico));

            var clienteServiceMock = new ClienteServicoMock();
            var clienteServico     = clienteServiceMock.ConfigurarObterClientePeloId().ConfigurarObterClientes().Build();
            var obterClientesQuery = new ObterClientesQuery(clienteServico);

            var produtoServiceMock = new ProdutoServicoMock();
            var produtoServico     = produtoServiceMock.ConfigurarObterProdutoPeloIdInexistente().Build();
            var obterProdutoQuery  = new ObterProdutosQuery(produtoServico);

            var pedidoServiceMock = new PedidoServicoMock();
            var pedidoServico     = pedidoServiceMock.ConfigurarCadastrarSucesso().Build();

            var cadastrarCommand = new CadastrarPedidoCommand(pedidoServico,
                                                              obterFreteQuery,
                                                              obterClientesQuery,
                                                              obterProdutoQuery,
                                                              new CadastrarPedidoValidador(clienteServico, produtoServico));

            Assert.ThrowsAsync <ArgumentException>(() => cadastrarCommand.Executar(cadastrarPedidoInputSucesso));
        }
Esempio n. 3
0
        public async Task DeveRetornarErroAoConsultarProdutosComParametrosIncorretos()
        {
            var handler = new ProdutoQueryHandler(_produtoDapper, _mediator, null);
            var command = new ObterProdutosQuery(-1, 4);

            await handler.Handle(command, new CancellationToken());

            Assert.True(command.Invalid);
        }
Esempio n. 4
0
        public async Task <IEnumerable <ObterProdutosResult> > Handle(ObterProdutosQuery request, CancellationToken cancellationToken)
        {
            if (SpotifyFacade.Instance.DadosImportados == false)
            {
                await _mediator.Publish(new ImportarProdutosNotification());

                return(null);
            }
            else
            {
                var listEntity = request.Filtro.IsEmpty() ?
                                 await _repository.ObterTodos() :
                                 await _repository.ObterPorFiltro(request.Filtro);

                return(_mapper.Map <List <ObterProdutosResult> >(listEntity));
            }
        }
Esempio n. 5
0
        public async Task <IEnumerable <ProdutoDto> > Handle(ObterProdutosQuery request, CancellationToken cancellationToken)
        {
            if (request.Pagina < 0)
            {
                request.AddNotification("ObterProdutosQuery.Pagina", "Pagina deve ser maior que 0.");
            }

            if (request.Quantidade < 5)
            {
                request.AddNotification("ObterProdutosQuery.Quantidade", "Quantidade deve ser maior ou igual que 5.");
            }

            if (request.Invalid)
            {
                await _mediator.Publish(new DomainNotification
                {
                    Erros = request.Notifications
                }, cancellationToken);

                return(await Task.FromResult(new List <ProdutoDto>()));
            }

            return(await _produtoDapper.ObterProdutos(request.Quantidade, request.Pagina));
        }