public async Task UpdateVehicle() { //Arrange var BDName = Guid.NewGuid().ToString(); var context = BuildContext(BDName); var fakevehicle = new Vehiculo() { Placa = "ABC123", Color = "Azul", FechaFabricacion = "14/2020", ConductorId = 1, CategoriaId = 1, ModeloId = 1, }; context.Vehiculos.Add(fakevehicle); await context.SaveChangesAsync(); var context2 = BuildContext(BDName); //Act var controller = new VehiculoesController(context2); var fakevehicleUPT = new UpdateVehiculoViewModel() { VehiculoId = 1, Placa = "XYZ522", Color = "Rojo", FechaFabricacion = "14/2020", ConductorId = 1, CategoriaId = 1, ModeloId = 1, }; var response = await controller.Update(fakevehicleUPT); var update = response as StatusCodeResult; //Assert Assert.AreEqual(200, update.StatusCode); var context3 = BuildContext(BDName); var exist = await context3.Vehiculos.FindAsync(1); Assert.IsNotNull(exist); }
public async Task <IActionResult> Update([FromBody] UpdateVehiculoViewModel model) { if (!ModelState.IsValid)//validando { return(BadRequest(ModelState)); } if (model.VehiculoId <= 0)//validando que el Vehiculoid llegue por parametro en positivo { return(BadRequest()); } //como todo es asincrono se le pone le await var cat = await _context.Vehiculos.FirstOrDefaultAsync(c => c.VehiculoId == model.VehiculoId);//si encuentra coincidencia lo asigna al cat(encuentra un objeto) if (cat == null) { return(NotFound()); } //el Vehiculoid ya esta por defecto cat.Placa = model.Placa; cat.Color = model.Color; cat.FechaFabricacion = model.FechaFabricacion; cat.ModeloId = model.ModeloId; cat.CategoriaId = model.CategoriaId; cat.ConductorId = model.ConductorId; try { //palabra reservada await _context.SaveChangesAsync();//guardando cambios hacia la bd, siempre se utiliza el try-catch } catch (Exception) { return(BadRequest()); } return(Ok()); }