public async Task OnPostDeleteProyectosPersonales_VerSiRealmenteBorra() { // Arrange //Preparamos un contexto que guarde la base de datos en memoria ram. var OptionsBuilder = new DbContextOptionsBuilder <IdentityContext>() .UseInMemoryDatabase("InMemoryDb"); IdentityContext TestIdentityContext = new IdentityContext(OptionsBuilder.Options); ProyectoPersonal ProyectoPersonal = new ProyectoPersonal() { ID = 45, Descripcion = "Book", FechaComienzo = DateTime.Parse("2019/02/12"), FechaFinalizacion = DateTime.Parse("2019/02/12"), TipoDeProyecto = "Foto" }; //Guardamos un Proyecto Personal en bd TestIdentityContext.ProyectoPersonal.Add(ProyectoPersonal); await TestIdentityContext.SaveChangesAsync(); // Act //Creamos una pagina de tipo DeleteModel (de Proyectos Personales), la cual es la que se encarga de la logica //de borrar Proyectos Personales en bd. DeleteModel PageDeleteModel = new DeleteModel(TestIdentityContext); //Simulamos un post que envíe el formulario de la pagina y por ende borre en bd, el Proyecto Personal que ingresamos en bd anteriormente await PageDeleteModel.OnPostAsync(ProyectoPersonal.ID); // Assert //Buscamos si aún esta en bd el Proyecto Personal que debió haber sido borrada por la pagina ProyectoPersonal ProyectoPersonalRecibida = await TestIdentityContext.ProyectoPersonal.FindAsync(ProyectoPersonal.ID); Assert.Null(ProyectoPersonalRecibida); //Si es Null significa que la pagina lo borro correctamente }
public async Task OnPostEditProyectosPersonales_VerSiRealmenteEdita() { // Arrange //Preparamos un contexto que guarde la base de datos en memoria ram. var OptionsBuilder = new DbContextOptionsBuilder <IdentityContext>() .UseInMemoryDatabase("InMemoryDb"); IdentityContext TestIdentityContext = new IdentityContext(OptionsBuilder.Options); ProyectoPersonal ProyectoPersonal = new ProyectoPersonal() { ID = 4, Descripcion = "Book", FechaComienzo = DateTime.Parse("2019/02/12"), FechaFinalizacion = DateTime.Parse("2019/02/12"), TipoDeProyecto = "Foto" }; //Guardamos un Proyecto Personal en bd TestIdentityContext.ProyectoPersonal.Add(ProyectoPersonal); TestIdentityContext.SaveChanges(); //Creo una instancia de Proyecto Personal para comparar más adelante ProyectoPersonal ProyectoPersonalEsperado = new ProyectoPersonal() { ID = 4, Descripcion = "Camara", FechaComienzo = DateTime.Parse("2019/03/12"), FechaFinalizacion = DateTime.Parse("2019/04/12"), TipoDeProyecto = "camara" }; // Act //Creamos una pagina de tipo EditModel (de Proyectos Personales), la cual es la que se encarga de la logica //de editar Proyectos Personales en bd. EditModel PageEditModel = new EditModel(TestIdentityContext); //Simulamos haber hecho el edit en un Proyectos Personales con el id await PageEditModel.OnGetAsync(ProyectoPersonal.ID); //Modificamos los valores de los atributos de la instancia "ProyectoPersonal" de Proyecto Personal PageEditModel.ProyectoPersonal.Descripcion = ProyectoPersonalEsperado.Descripcion; PageEditModel.ProyectoPersonal.FechaComienzo = ProyectoPersonalEsperado.FechaComienzo; PageEditModel.ProyectoPersonal.FechaFinalizacion = ProyectoPersonalEsperado.FechaFinalizacion; PageEditModel.ProyectoPersonal.TipoDeProyecto = ProyectoPersonalEsperado.TipoDeProyecto; //Simulamos un post que envíe el formulario de la pagina y por ende guarda los cambios de la edicion await PageEditModel.OnPostAsync(); // Assert //Buscamos si aún esta en bd el Proyecto Personal que debió haber sido editada por la pagina ProyectoPersonal ProyectoPersonalRecibida = await TestIdentityContext.ProyectoPersonal.FindAsync(ProyectoPersonal.ID); Assert.Equal( ProyectoPersonalEsperado.Descripcion.ToString(), ProyectoPersonalRecibida.Descripcion.ToString()); Assert.Equal( ProyectoPersonalEsperado.FechaComienzo.ToString(), ProyectoPersonalRecibida.FechaComienzo.ToString()); Assert.Equal( ProyectoPersonalEsperado.FechaFinalizacion.ToString(), ProyectoPersonalRecibida.FechaFinalizacion.ToString()); Assert.Equal( ProyectoPersonalEsperado.TipoDeProyecto.ToString(), ProyectoPersonalRecibida.TipoDeProyecto.ToString()); //Si se ejecuta correctamente, significa que el programa modifica correctamente Proyectos Personales }
public async Task OnPostCreateProyectosPersonales_VerSiRealmenteCrea() { // Arrange //Preparamos un contexto que guarde la base de datos en memoria ram. var OptionsBuilder = new DbContextOptionsBuilder <IdentityContext>() .UseInMemoryDatabase("InMemoryDb"); IdentityContext TestIdentityContext = new IdentityContext(OptionsBuilder.Options); //Creamos un Proyecto Personal Esperado ProyectoPersonal ProyectoPersonalEsperado = new ProyectoPersonal() { ID = 1, Descripcion = "Book", FechaComienzo = DateTime.Parse("2019/02/12"), FechaFinalizacion = DateTime.Parse("2019/02/12"), TipoDeProyecto = "Foto" }; // Act //Creamos una pagina de tipo CreateModel (de ProyectosPersonales), la cual es la que se encarga de la logica //de crear Proyectos Personales en bd. CreateModel PageCreateModel = new CreateModel(TestIdentityContext); //Introducimos un Proyecto Personal en el modelo de la pagina que creamos, a mano Seteamos los valores del // Proyecto Personal de esa página PageCreateModel.ProyectoPersonal = new ProyectoPersonal() { ID = 1, Descripcion = "Book", FechaComienzo = DateTime.Parse("2019/02/12"), FechaFinalizacion = DateTime.Parse("2019/02/12"), TipoDeProyecto = "Foto" }; //Simulamos un post que envíe el formulario de la pagina y por ende guarde en bd, el Proyecto Personal que ingresamos en esa pagina await PageCreateModel.OnPostAsync(); // Assert //Buscamos usando el contexto del Proyecto Personal recien creada por id ProyectoPersonal ProyectoPersonalRecibida = await TestIdentityContext.ProyectoPersonal.FindAsync(1); //Comparamos que la que creamos en el modelo de la pagina y por ende mandamos a crear en bd, //y el Proyecto Personal que recibimos de bd con id 1, tengan igual Descripcion, FechaComienzo, FechaFinalizada, Tipo de proyecto Assert.Equal( ProyectoPersonalEsperado.Descripcion.ToString(), ProyectoPersonalRecibida.Descripcion.ToString()); Assert.Equal( ProyectoPersonalEsperado.FechaComienzo.ToString(), ProyectoPersonalRecibida.FechaComienzo.ToString()); Assert.Equal( ProyectoPersonalEsperado.FechaFinalizacion.ToString(), ProyectoPersonalRecibida.FechaFinalizacion.ToString()); Assert.Equal( ProyectoPersonalEsperado.TipoDeProyecto.ToString(), ProyectoPersonalRecibida.TipoDeProyecto.ToString()); //Si esto no falla, concluimos que la pagina de Proyectos Personales (de tener bien seteado el modelo), //guarda sin problemas un Proyecto Personal en bd cuando no hay nada ingresado }
public async Task <IActionResult> OnGetAsync(int?id) { if (id == null) { return(NotFound()); } ProyectoPersonal = await _context.ProyectoPersonal.FirstOrDefaultAsync(m => m.ID == id); if (ProyectoPersonal == null) { return(NotFound()); } return(Page()); }
public async Task <IActionResult> OnPostAsync(int?id) { if (id == null) { return(NotFound()); } ProyectoPersonal = await _context.ProyectoPersonal.FindAsync(id); if (ProyectoPersonal != null) { _context.ProyectoPersonal.Remove(ProyectoPersonal); await _context.SaveChangesAsync(); } return(RedirectToPage("./Index")); }