public void QuandoReceberUmFornecedorExistenteDeveAtualizar() { _fornecedoresMock.Setup(x => x.Save(It.IsAny <Fornecedor>())).Callback((Fornecedor fornecedor) => { Assert.IsNotNull(fornecedor); Assert.IsInstanceOfType(fornecedor, typeof(FornecedorParaAtualizacao)); Assert.AreEqual("FORNEC0001", fornecedor.Codigo); Assert.AreEqual("FORNECEDOR 0001 ATUALIZADO", fornecedor.Nome); Assert.AreEqual("*****@*****.**", fornecedor.Email); Assert.AreEqual("cnpj alterado", fornecedor.Cnpj); Assert.AreEqual("municipio alterado", fornecedor.Municipio); Assert.AreEqual("uf", fornecedor.Uf); Assert.IsTrue(fornecedor.Transportadora); }); _cadastroFornecedor.AtualizarFornecedores(new List <FornecedorCadastroVm>() { new FornecedorCadastroVm() { Codigo = "FORNEC0001", Nome = "FORNECEDOR 0001 ATUALIZADO", Email = "*****@*****.**", Cnpj = "cnpj alterado", Municipio = "municipio alterado", Uf = "uf", Transportadora = "X" } }); }
//para funcionar o binding de um xml para um array ou list a classe correspondente ao parâmetro //deve ser decorada com a propriedade "[DataContract]" e as propriedades da classe que precisam //ser serializadas devem ser decoradas com a propriedade "[DataMember]" //Se na origem da requisição o dado for um json isto não é necessário. //Ver explicação em: http://www.asp.net/web-api/overview/formats-and-model-binding/json-and-xml-serialization public HttpResponseMessage PostMultiplo([FromBody] ListaFornecedores fornecedores) { ApiResponseMessage retornoPortal; try { var fornecedoresComNome = fornecedores.Where(x => !string.IsNullOrEmpty(x.Nome)).ToList(); int quantidadeDeFornecedoresSemNome = fornecedores.Count - fornecedoresComNome.Count; _cadastroFornecedor.AtualizarFornecedores(fornecedoresComNome); retornoPortal = new ApiResponseMessage() { Retorno = new Retorno() {Codigo = "200", Texto = fornecedoresComNome.Count + " fornecedores atualizados." + (quantidadeDeFornecedoresSemNome > 0 ? quantidadeDeFornecedoresSemNome + " fornecedores não atualizados: " + string.Join(", ",fornecedores.Where(x => string.IsNullOrEmpty(x.Nome)).Select(f => f.Codigo)) + ".": "") } }; return Request.CreateResponse(HttpStatusCode.OK, retornoPortal); } catch (Exception ex) { retornoPortal = ExceptionUtil.GeraExecaoDeErroParaWebApi(ex); return Request.CreateResponse(HttpStatusCode.OK, retornoPortal); } }