public async Task<IHttpActionResult> Post(Cliente cliente) { if (cliente == null) return BadRequest("Cliente não pode ser nulo"); if (cliente.Id != 0) return BadRequest("Id do cliente inválido"); try { await Task.FromResult(_repo.Salvar(cliente)); //return CreatedAtRoute("DefaultApi", new { id = cliente.Id }, cliente); var location = Request == null ? "" : string.Format("{0}/{1}", Request.RequestUri, cliente.Id).Replace("//","/"); return Created(location, cliente); } catch (Exception ex) { if (ex.InnerException != null && ex.InnerException.ToString().Contains("UQ_dbo.Cliente.Nome-Nascimento")) return ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, "Já existe um cliente com este nome e essa data de nascimento")); return InternalServerError(ex); } }
public async Task<IHttpActionResult> Put(int id,Cliente cliente) { if (cliente == null) return BadRequest("Cliente não pode ser nulo"); if (id != cliente.Id) return BadRequest("Os id's não conferem"); await Task.FromResult(_repo.Salvar(cliente)); return StatusCode(HttpStatusCode.NoContent); }
public Cliente Salvar(Cliente cliente) { if (cliente.Id == 0) { _ctx.Clientes.Add(cliente); } else { _ctx.Entry(cliente).State = EntityState.Modified; } SalvarContexto(); return cliente; }
public void Verificando_o_comportamento_do_método_Salvar_adicionando_cliente() { //arrange var id = 0; var cliente = new Cliente { Id = id, Nome = "teste de cliente", Sexo = Sexo.Masculino, Nascimento = new DateTime() }; var mockRep = new Mock<IClienteRepositorio>(); mockRep.Setup(mr => mr.Salvar(cliente)).Returns(() => { cliente.Id = ClienteStub.ObterClientes.Count + 1; return cliente; }); //act var dado = mockRep.Object.Salvar(cliente); //assert Assert.AreNotEqual(id, dado.Id); Assert.AreEqual(cliente.Nome, dado.Nome); Assert.AreEqual(cliente.Sexo, dado.Sexo); Assert.AreEqual(cliente.Nascimento, dado.Nascimento); }
public async Task Post_deverá_adicionar_o_cliente_e_retornar_o_caminho_do_mesmo() { //Arrange var cliente = new Cliente { Nome = "Novo Cliente", Sexo = CadCli.Dominio.Enums.Sexo.Masculino, Nascimento = new DateTime() }; var repo = new ClienteRepositorioStub(); var controller = new ClientesController(repo); //Action var result = await controller.Post(cliente) as CreatedNegotiatedContentResult<Cliente>; //Assert Assert.IsNotNull(result); //Assert.AreEqual(result.RouteName, "DefaultApi"); //Assert.AreEqual(result.RouteValues["id"], result.Content.Id); Assert.AreEqual(result.Content.Nome, cliente.Nome); controller.Dispose(); repo.Dispose(); }
public Cliente Salvar(Cliente cliente) { if (cliente.Id == 0) { var newId = _autoNumID; cliente.Id = newId; Clientes.Add(cliente); _autoNumID++; } else { var _cli = ObterPorId(cliente.Id); _cli = cliente; } return cliente; }
public async Task Post_deverá_falhar_qdo_o_cliente_já_possuir_um_Id() { //Arrange var cliente = new Cliente { Id = 1, Nome = "Novo Cliente", Sexo = CadCli.Dominio.Enums.Sexo.Masculino, Nascimento = new DateTime() }; var repo = new ClienteRepositorioStub(); var controller = new ClientesController(repo); //Action var result = await controller.Post(cliente) as BadRequestErrorMessageResult; //Assert Assert.IsNotNull(result); Assert.AreEqual("Id do cliente inválido", result.Message); controller.Dispose(); repo.Dispose(); }