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