public async Task<IHttpActionResult> Post(Empresa empresa) { if (empresa == null) return BadRequest("Empresa não pode ser nula"); if (empresa.Id != 0) return BadRequest("Id da empresa inválido"); try { await Task.FromResult(_repo.Salvar(empresa)); //return CreatedAtRoute("DefaultApi", new { id = empresa.Id }, empresa); var location = Request == null ? "" : string.Format("{0}/{1}", Request.RequestUri, empresa.Id).Replace("//", "/"); return Created(location, empresa); } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException.ToString().Contains("UQ_dbo.Empresa.CNPJ")) return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Já existe uma empresa com este cnpj")); return InternalServerError(ex); } }
public async Task<IHttpActionResult> Put(int id, Empresa empresa) { if (empresa == null) return BadRequest("Empresa não pode ser nula"); if (id != empresa.Id) return BadRequest("Os id's não conferem"); await Task.FromResult(_repo.Salvar(empresa)); return StatusCode(HttpStatusCode.NoContent); }
public Empresa Salvar(Empresa empresa) { if (empresa.Id == 0) { _ctx.Empresas.Add(empresa); } else { _ctx.Entry(empresa).State = EntityState.Modified; } SalvarContexto(); return empresa; }
public void Verificando_o_comportamento_do_método_Salvar_adicionando_empresa() { //arrange var id = 0; var empresa = new Empresa { Id = id, Nome = "teste de empresa", CNPJ = "10298199000122"}; var mockRep = new Mock<IEmpresaRepositorio>(); mockRep.Setup(mr => mr.Salvar(empresa)).Returns(() => { empresa.Id = EmpresaStub.ObterEmpresas.Count + 1; return empresa; }); //act var dado = mockRep.Object.Salvar(empresa); //assert Assert.AreNotEqual(id, dado.Id); Assert.AreEqual(empresa.Nome, dado.Nome); Assert.AreEqual(empresa.CNPJ, dado.CNPJ); }
public Empresa Salvar(Empresa empresa) { if (empresa.Id == 0) { empresa.Id = _autoNum++; Empresas.Add(empresa); } else { var _emp = ObterPorId(empresa.Id); _emp = empresa; } return empresa; }
public async Task Post_deverá_falhar_qdo_a_empresa_já_possuir_um_Id() { //Arrange var empresa = new Empresa { Id = 1, Nome = "Nova Empresa", CNPJ="12345000199"}; var repo = new EmpresaRepositorioStub(); var controller = new EmpresasController(repo); //Action var result = await controller.Post(empresa) as BadRequestErrorMessageResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("Id da empresa inválido", result.Message); controller.Dispose(); repo.Dispose(); }
public async Task Post_deverá_adicionar_a_empresa_e_retornar_o_caminho_da_mesma() { //Arrange var empresa = new Empresa { Nome = "Nova Empresa",CNPJ="12345000177"}; var repo = new EmpresaRepositorioStub(); var controller = new EmpresasController(repo); //Action var result = await controller.Post(empresa) as CreatedNegotiatedContentResult<Empresa>; //Assert Assert.IsNotNull(result); //Assert.AreEqual(result.RouteName, "DefaultApi"); //Assert.AreEqual(result.RouteValues["id"], result.Content.Id); Assert.AreEqual(result.Content.Nome, empresa.Nome); controller.Dispose(); repo.Dispose(); }