Example #1
0
        public void QuandoOcorrerErroAoAtualizarUmaListaDeProdutosDeveRetornarStatusDeErro()
        {
            var cadastroProdutoMock = new Mock <ICadastroProduto>(MockBehavior.Strict);

            cadastroProdutoMock.Setup(x => x.AtualizarProdutos(It.IsAny <IList <ProdutoCadastroVm> >()))
            .Throws(new Exception("Ocorreu um erro ao atualizar os produtos"));
            var produtoApiController = new ProdutoApiController(cadastroProdutoMock.Object);
            var produtoCadastroVm    = new ProdutoCadastroVm()
            {
                Codigo    = "SAP 0001",
                Descricao = "PRODUTO 0001"
            };

            produtoApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoApi/PostMultiplo");
            produtoApiController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());

            var resposta = produtoApiController.PostMultiplo(new ListaProdutos()
            {
                produtoCadastroVm
            });
            var apiResponseMessage = (ApiResponseMessage)((ObjectContent)(resposta.Content)).Value;

            Assert.AreEqual(HttpStatusCode.OK, resposta.StatusCode);
            Assert.AreEqual("500", apiResponseMessage.Retorno.Codigo);
            cadastroProdutoMock.Verify(x => x.AtualizarProdutos(It.IsAny <IList <ProdutoCadastroVm> >()), Times.Once());
        }
 // POST api/<controller>
 public HttpResponseMessage Post([FromBody] ProdutoCadastroVm produtoCadastroVm)
 {
     try
     {
         _cadastroProduto.Novo(produtoCadastroVm);
         return(Request.CreateResponse(HttpStatusCode.OK));
     }
     catch (Exception ex)
     {
         return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
     }
 }
 public void Novo(ProdutoCadastroVm produtoCadastroVm)
 {
     try
     {
         _unitOfWork.BeginTransaction();
         AtualizarProduto(produtoCadastroVm);
         _unitOfWork.Commit();
     }
     catch (Exception)
     {
         _unitOfWork.RollBack();
         throw;
     }
 }
        private void AtualizarProduto(ProdutoCadastroVm produtoCadastroVm)
        {
            Produto produto = _produtos.BuscaPorCodigoSap(produtoCadastroVm.CodigoSap);
            if (produto != null)
            {
                produto.AtualizaDescricao(produtoCadastroVm.Descricao);
            }
            else
            {
                produto = new Produto(produtoCadastroVm.CodigoSap, produtoCadastroVm.Descricao);
            }

            _produtos.Save(produto);
        }
        private void AtualizarProduto(ProdutoCadastroVm produtoCadastroVm)
        {
            Produto produto = _produtosConsultados.SingleOrDefault(x => x.Codigo == produtoCadastroVm.Codigo);

            if (produto != null)
            {
                produto.Atualizar(produtoCadastroVm.Descricao, produtoCadastroVm.Tipo);
            }
            else
            {
                produto = new Produto(produtoCadastroVm.Codigo, produtoCadastroVm.Descricao, produtoCadastroVm.Tipo);
            }
            _produtos.Save(produto);
        }
 public void Novo(ProdutoCadastroVm produtoCadastroVm)
 {
     try
     {
         _unitOfWork.BeginTransaction();
         _produtosConsultados = _produtos.FiltraPorListaDeCodigos(new[] { produtoCadastroVm.Codigo }).List();
         AtualizarProduto(produtoCadastroVm);
         _unitOfWork.Commit();
     }
     catch (Exception)
     {
         _unitOfWork.RollBack();
         throw;
     }
 }
        public KendoGridVm Listar(PaginacaoVm paginacaoVm, ProdutoCadastroVm filtro)
        {
            _produtos.CodigoContendo(filtro.Codigo);
            _produtos.DescricaoContendo(filtro.Descricao);
            _produtos.TipoContendo(filtro.Tipo);

            var kendoGridVmn = new KendoGridVm()
            {
                QuantidadeDeRegistros = _produtos.Count(),
                Registros             =
                    _builderProduto.BuildList(_produtos.Skip(paginacaoVm.Skip).Take(paginacaoVm.Take).List())
                    .Cast <ListagemVm>()
                    .ToList()
            };

            return(kendoGridVmn);
        }
Example #8
0
        public CadastroProdutoTests()
        {
            _unitOfWorkMock   = CommonMocks.DefaultUnitOfWorkMock();
            _produtosConsulta = new List <Produto>();
            _produtosMock     = new Mock <IProdutos>(MockBehavior.Strict);
            _produtosMock.Setup(x => x.Save(It.IsAny <Produto>())).Callback((Produto produto) => Assert.IsNotNull(produto));
            _produtosMock.Setup(x => x.FiltraPorListaDeCodigos(It.IsAny <string[]>()))
            .Callback((string[] codigos) =>
            {
                if (codigos.Contains("PROD0001"))
                {
                    _produtosConsulta.Add(new ProdutoParaAtualizacao("PROD0001", "PRODUTO 0001", "01"));
                }
            })
            .Returns(_produtosMock.Object);

            _produtosMock.Setup(x => x.List()).Returns(_produtosConsulta);

            _cadastroProduto = new CadastroProduto(_unitOfWorkMock.Object, _produtosMock.Object);

            _produtoPadrao = new ProdutoCadastroVm()
            {
                Codigo    = "SAP 0001",
                Descricao = "PRODUTO 0001",
                Tipo      = "01"
            };

            _produtosPadrao = new List <ProdutoCadastroVm>()
            {
                new ProdutoCadastroVm()
                {
                    Codigo    = "PROD0001",
                    Descricao = "PRODUTO 0001",
                    Tipo      = "01"
                },
                new ProdutoCadastroVm()
                {
                    Codigo    = "PROD0002",
                    Descricao = "PRODUTO 0002",
                    Tipo      = "02"
                }
            };
        }
Example #9
0
        public void QuandoCadastroUmProdutoComSucessoDeveRetornarStatusOk()
        {
            var cadastroProdutoMock = new Mock <ICadastroProduto>(MockBehavior.Strict);

            cadastroProdutoMock.Setup(x => x.Novo(It.IsAny <ProdutoCadastroVm>()));
            var produtoApiController = new ProdutoApiController(cadastroProdutoMock.Object);
            var produtoCadastroVm    = new ProdutoCadastroVm()
            {
                Codigo    = "SAP 0001",
                Descricao = "PRODUTO 0001"
            };

            produtoApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoApi/Post");

            var resposta = produtoApiController.Post(produtoCadastroVm);

            Assert.AreEqual(HttpStatusCode.OK, resposta.StatusCode);
            cadastroProdutoMock.Verify(x => x.Novo(It.IsAny <ProdutoCadastroVm>()), Times.Once());
        }
Example #10
0
        public void QuandoOcorrerAlgumErroDeveRetornarStatusDeErroComMensagem()
        {
            var cadastroProdutoMock = new Mock <ICadastroProduto>(MockBehavior.Strict);

            cadastroProdutoMock.Setup(x => x.Novo(It.IsAny <ProdutoCadastroVm>())).Throws(new Exception("Ocorreu um erro ao cadastrar o Produto"));
            var produtoApiController = new ProdutoApiController(cadastroProdutoMock.Object);
            var produtoCadastroVm    = new ProdutoCadastroVm()
            {
                Codigo    = "SAP 0001",
                Descricao = "PRODUTO 0001"
            };

            produtoApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoApi/Post");
            produtoApiController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());

            var resposta = produtoApiController.Post(produtoCadastroVm);

            Assert.AreEqual(HttpStatusCode.InternalServerError, resposta.StatusCode);
            //Assert.AreEqual("Ocorreu um erro ao cadastrar o Produto", resposta.RequestMessage.Content);

            cadastroProdutoMock.Verify(x => x.Novo(It.IsAny <ProdutoCadastroVm>()), Times.Once());
        }
Example #11
0
        public void QuandoAtualizarUmaListaDeProdutosComSucessoDeveRetornarStatusOk()
        {
            var cadastroProdutoMock = new Mock <ICadastroProduto>(MockBehavior.Strict);

            cadastroProdutoMock.Setup(x => x.AtualizarProdutos(It.IsAny <IList <ProdutoCadastroVm> >()));
            var produtoApiController = new ProdutoApiController(cadastroProdutoMock.Object);
            var produtoCadastroVm    = new ProdutoCadastroVm()
            {
                Codigo    = "SAP 0001",
                Descricao = "PRODUTO 0001"
            };

            produtoApiController.Request = new HttpRequestMessage(HttpMethod.Post, "http://localhost/ProdutoApi/PostMultiplo");
            produtoApiController.Request.Properties.Add(HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration());

            var resposta = produtoApiController.PostMultiplo(new ListaProdutos()
            {
                produtoCadastroVm
            });

            Assert.AreEqual(HttpStatusCode.OK, resposta.StatusCode);
            cadastroProdutoMock.Verify(x => x.AtualizarProdutos(It.IsAny <IList <ProdutoCadastroVm> >()), Times.Once());
        }
Example #12
0
        public ViewResult Cadastro(string codigoProduto)
        {
            ProdutoCadastroVm produtoCadastroVm = _consultaProduto.ConsultaPorCodigo(codigoProduto);

            return(View(produtoCadastroVm));
        }
Example #13
0
 public JsonResult Listar(PaginacaoVm paginacao, ProdutoCadastroVm filtro)
 {
     return(Json(_consultaProduto.Listar(paginacao, filtro), JsonRequestBehavior.AllowGet));
 }
 public ActionResult SelecionarProduto(ProdutoCadastroVm produtoCadastroVm)
 {
     return(PartialView("_SelecionarProduto", produtoCadastroVm));
 }