public async Task Select_InversionesSeleccionadas() { using (context) { //Arrange var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; String[] ids = new string[1] { "1" }; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel { IdsToAdd = ids }; // Act var result = controller.SelectInversionForRecuperarInversion(inversiones); // Assert var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(viewResult.ActionName, "Create"); var resultadoinversiones = viewResult.RouteValues.Values.First(); Assert.Equal(inversiones.IdsToAdd, resultadoinversiones); } }
public async Task Details_GET_SinIdsToAdd() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; InversionRecuperadaDetailsViewModel detailsVM = new InversionRecuperadaDetailsViewModel(); //ACT (Actuar) --> Realización de la prueba var result = await controller.Details(detailsVM); //ASSERT --> Verificación de que el resultado fue el que se esperaba var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(viewResult.ActionName, "Create"); } }
public async Task Create_GET_SinInversiones() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel(); inversiones.IdsToAdd = new string[0]; //ACT (Actuar) --> Realización de la prueba var result = controller.Create(inversiones); //ASSERT --> Verificación de que el resultado fue el que se esperaba var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal(viewResult.ActionName, "SelectInversionForRecuperarInversion"); } }
public async Task Details_GET_ConInversionesRecuperadas() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; int[] ids = new int[2] { 1, 2 }; InversionRecuperadaDetailsViewModel detailsVM = new InversionRecuperadaDetailsViewModel() { IdsToAdd = ids }; var rating = new Rating { RatingId = 1, Nombre = "A" }; Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 50, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******" }; Inversion inversion1 = new Inversion { InversionId = 1, Cuota = 150, EstadosInversiones = "En_Curso", Intereses = 50, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 200 }; var invRecEsperadas = new InversionRecuperada[] { new InversionRecuperada { InversionRecuperadaId = 1, InversionId = 1, CantidadRecuperada = 5, Inversion = inversion1, Comentario = "OK 1", FechaRecuperacion = DateTime.Now, }, new InversionRecuperada { InversionRecuperadaId = 2, InversionId = 1, CantidadRecuperada = 10, Inversion = inversion1, Comentario = "OK 2", FechaRecuperacion = DateTime.Now, } }; //ACT (Actuar) --> Realización de la prueba var result = controller.Details(detailsVM); //ASSERT --> Verificación de que el resultado fue el que se esperaba ViewResult viewResult = Assert.IsType <ViewResult>(result.Result); //Comprueba si el controlador devuelve una vista var model = viewResult.Model as IEnumerable <InversionRecuperada>; Assert.Equal(invRecEsperadas, model, Comparer.Get <InversionRecuperada>((i1, i2) => i1.Equals(i2))); } }
public async Task Select_NoInversionesSeleccionadas() { using (context) { //Arrange var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; var area = "Sanidad"; var rating = new Rating { RatingId = 1, Nombre = "A" }; var tipo = new TiposInversiones { TiposInversionesId = 1, Nombre = "Crownfunding" }; String[] areasEsperadas = new String[1] { "Sanidad" }; String[] ratingsEsperados = new String[1] { "A" }; String[] tiposEsperados = new String[1] { "Crownfunding" }; var areasEsperadasSelect = new SelectList(areasEsperadas); var ratingsEsperadosSelect = new SelectList(ratingsEsperados); var tiposEsperadosSelect = new SelectList(tiposEsperados); Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 2, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******" }; var inversionesEsperadas = new Inversion[2] { new Inversion { InversionId = 1, Cuota = 6, EstadosInversiones = "En_Curso", Intereses = 12, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 50 }, new Inversion { InversionId = 2, Cuota = 15, EstadosInversiones = "Finalizado", Intereses = 23, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 100, } }; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel { IdsToAdd = null }; // Act var result = controller.SelectInversionForRecuperarInversion(inversiones); // Assert var viewResult = Assert.IsType <ViewResult>(result); //Comprueba si el controlador devuelve una vista SelectInversionForRecuperarInversionViewModel model = viewResult.Model as SelectInversionForRecuperarInversionViewModel; Assert.Equal(inversionesEsperadas, model.Inversiones, Comparer.Get <Inversion>((i1, i2) => i1.Cuota == i2.Cuota && i1.EstadosInversiones == i2.EstadosInversiones && i1.TipoInversionesId == i1.TipoInversionesId && i1.Total == i2.Total)); Assert.Equal(areasEsperadasSelect.Count(), model.Areas.Count()); Assert.Equal(areasEsperadasSelect, model.Areas, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); Assert.Equal(ratingsEsperados.Count(), model.Ratings.Count()); Assert.Equal(ratingsEsperadosSelect, model.Ratings, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); Assert.Equal(tiposEsperados.Count(), model.Tipos.Count()); Assert.Equal(tiposEsperadosSelect, model.Tipos, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); } }
public async Task Select_FiltroEstado() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; var area = "Sanidad"; var rating = new Rating { RatingId = 1, Nombre = "A" }; var tipo = new TiposInversiones { TiposInversionesId = 1, Nombre = "Crownfunding" }; String[] areasEsperadas = new String[1] { "Sanidad" }; String[] ratingsEsperados = new String[1] { "A" }; String[] tiposEsperados = new String[1] { "Crownfunding" }; var areasEsperadasSelect = new SelectList(areasEsperadas); var ratingsEsperadosSelect = new SelectList(ratingsEsperados); var tiposEsperadosSelect = new SelectList(tiposEsperados); Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 2, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******" }; var inversionesEsperadas = new Inversion[1] { new Inversion { InversionId = 1, Cuota = 6, EstadosInversiones = "En_Curso", Intereses = 12, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 50 } }; //ACT (Actuar) --> Realización de la prueba var result = controller.SelectInversionForRecuperarInversion(0, null, "En_Curso", null, null); //ASSERT --> Verificación de que el resultado fue el que se esperaba var viewResult = Assert.IsType <ViewResult>(result); //Comprueba si el controlador devuelve una vista SelectInversionForRecuperarInversionViewModel model = viewResult.Model as SelectInversionForRecuperarInversionViewModel; Assert.Equal(inversionesEsperadas, model.Inversiones, Comparer.Get <Inversion>((i1, i2) => i1.Cuota == i2.Cuota && i1.EstadosInversiones == i2.EstadosInversiones && i1.TipoInversionesId == i1.TipoInversionesId && i1.Total == i2.Total)); Assert.Equal(areasEsperadasSelect.Count(), model.Areas.Count()); Assert.Equal(areasEsperadasSelect, model.Areas, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); Assert.Equal(ratingsEsperados.Count(), model.Ratings.Count()); Assert.Equal(ratingsEsperadosSelect, model.Ratings, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); Assert.Equal(tiposEsperados.Count(), model.Tipos.Count()); Assert.Equal(tiposEsperadosSelect, model.Tipos, Comparer.Get <SelectListItem>((i1, i2) => i1.Value == i2.Value)); } }
public async Task Create_POST_DatosCorrectos_Cuota() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; String[] ids = new string[1] { "1" }; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel() { IdsToAdd = ids }; var rating = new Rating { RatingId = 1, Nombre = "A" }; Monedero monedero1 = new Monedero { MonederoId = 1, Dinero = 500 }; Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 2, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******", Monedero = monedero1 }; IList <Inversion> inversions = new Inversion[1] { new Inversion { InversionId = 1, Cuota = 150, EstadosInversiones = "En_Curso", Intereses = 50, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 200 } }; IList <InversionRecuperada> listaInvRec = new InversionRecuperada[1] { new InversionRecuperada { InversionRecuperadaId = 1, Inversion = inversions[0], CantidadRecuperada = 100, Comentario = "OK", FechaRecuperacion = DateTime.Now } }; InversionRecuperadaCreateViewModel inversionEsperada = new InversionRecuperadaCreateViewModel { Inversiones = inversions, InversionesRecuperadas = listaInvRec }; //ACT (Actuar) --> Realización de la prueba var result = controller.Create(inversionEsperada); //ASSERT --> Verificación de que el resultado fue el que se esperaba var viewResult = Assert.IsType <RedirectToActionResult>(result.Result); var current = context.InversionRecuperada.FirstOrDefault(); Assert.Equal(current, inversionEsperada.InversionesRecuperadas[0], Comparer.Get <InversionRecuperada>((i1, i2) => i1.Equals(i2))); Assert.Equal(viewResult.ActionName, "Details"); } }
public async Task Create_POST_CantidadNoPermitida() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; String[] ids = new string[1] { "1" }; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel() { IdsToAdd = ids }; var rating = new Rating { RatingId = 1, Nombre = "A" }; Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 2, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******" }; IList <Inversion> inversions = new Inversion[1] { new Inversion { InversionId = 1, Cuota = 6, EstadosInversiones = "En_Curso", Intereses = 12, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 50 } }; IList <InversionRecuperada> listaInvRec = new InversionRecuperada[1] { new InversionRecuperada { InversionRecuperadaId = 1, Inversion = inversions[0], CantidadRecuperada = 50000, Comentario = "OK", FechaRecuperacion = DateTime.Now } }; InversionRecuperadaCreateViewModel inversionEsperada = new InversionRecuperadaCreateViewModel { Inversiones = inversions, InversionesRecuperadas = listaInvRec }; //ACT (Actuar) --> Realización de la prueba var result = controller.Create(inversionEsperada); //ASSERT --> Verificación de que el resultado fue el que se esperaba ViewResult viewResult = Assert.IsType <ViewResult>(result.Result); //Comprueba si el controlador devuelve una vista InversionRecuperadaCreateViewModel model = viewResult.Model as InversionRecuperadaCreateViewModel; var error = viewResult.ViewData.ModelState["CantidadNoPermitida"].Errors.FirstOrDefault(); Assert.Equal("No se puede recuperar dicha cantidad para la inversión 1, eliga una cantidad menor.", error.ErrorMessage); Assert.Equal(inversionEsperada.Inversiones, model.Inversiones, Comparer.Get <Inversion>((i1, i2) => i1.Equals(i2))); } }
public async Task Create_GET_ConInversiones() { using (context) //Base SQL ya generada con datos incluidos { //ARRANGE (Organizar) --> Creación de condiciones para la prueba. var controller = new InversionRecuperadasController(context); controller.ControllerContext.HttpContext = inversionRecuperadaContext; String[] ids = new string[1] { "1" }; SelectedInversionForRecuperarInversionViewModel inversiones = new SelectedInversionForRecuperarInversionViewModel() { IdsToAdd = ids }; var rating = new Rating { RatingId = 1, Nombre = "A" }; Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2020, 1, 1), Importe = 12, Interes = 50, MinInversion = 5, Nombre = "Pruebas en sanidad", NumInversores = 0, Plazo = 12, Progreso = 34, Rating = rating }; Inversor inversor1 = new Inversor { Id = "1", Nombre = "*****@*****.**", Email = "*****@*****.**", Apellido1 = "Girón", Apellido2 = "López", Domicilio = "C/Cuenca", Municipio = "Albacete", NIF = "48259596", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PasswordHash = "hola", UserName = "******" }; IList <Inversion> inversions = new Inversion[1] { new Inversion { InversionId = 1, Cuota = 150, EstadosInversiones = "En_Curso", Intereses = 50, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 200 } }; InversionRecuperadaCreateViewModel inversionEsperada = new InversionRecuperadaCreateViewModel { Inversiones = inversions }; //ACT (Actuar) --> Realización de la prueba var result = controller.Create(inversiones); //ASSERT --> Verificación de que el resultado fue el que se esperaba ViewResult viewResult = Assert.IsType <ViewResult>(result); //Comprueba si el controlador devuelve una vista InversionRecuperadaCreateViewModel model = viewResult.Model as InversionRecuperadaCreateViewModel; Assert.Equal(inversionEsperada.Inversiones, model.Inversiones, Comparer.Get <Inversion>((i1, i2) => i1.Equals(i2))); } }