public async Task Select_NoProyectoSeleccionados() { using (context) { // ARRANGE: Set the test case will use the inMemoty database created in the constructor var controller = new InversionsController(context); controller.ControllerContext.HttpContext = inversionContext; //Proyectos var expectedProyectos = new Proyecto[2] { new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = (float)5.90, MinInversion = 50, Nombre = "E-MEDICA", NumInversores = 0, Plazo = 12, Progreso = 0, RatingId = 3 }, new Proyecto { ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 14), Importe = 70000, Interes = (float)7.25, MinInversion = 0, Nombre = "PROTOS", NumInversores = 0, Plazo = 48, Progreso = 0, RatingId = 2 } }; //Areas var expectedAreas = new Areas[1] { new Areas { Nombre = "Sanidad" } }; //Tipos de Inversiones var expectedTiposInversiones = new TiposInversiones[1] { new TiposInversiones { Nombre = "Crowdfunding" } }; //Rating var expectedRating = new Rating[1] { new Rating { Nombre = "A" } }; SelectedProyectosForInversionViewModel Proyectos = new SelectedProyectosForInversionViewModel { IdsToAdd = null }; // ACT var result = controller.SelectProyectosForInversion(Proyectos); //ASSERT var viewResult = Assert.IsType <ViewResult>(result); SelectProyectosForInversionViewModel model = viewResult.Model as SelectProyectosForInversionViewModel; Assert.Equal(expectedProyectos, model.Proyectos, Comparer.Get <Proyecto>((p1, p2) => p1.Nombre == p2.Nombre && p1.Importe == p2.Importe && p1.MinInversion == p2.MinInversion && p1.Progreso == p2.Progreso && p1.ProyectoId == p2.ProyectoId)); Assert.Equal(expectedTiposInversiones, model.TiposInversiones, Comparer.Get <TiposInversiones>((p1, p2) => p1.Nombre == p2.Nombre)); Assert.Equal(expectedAreas, model.Areas, Comparer.Get <Areas>((a1, b2) => a1.Nombre == a1.Nombre)); Assert.Equal(expectedRating, model.Rating, Comparer.Get <Rating>((r1, r2) => r1.Nombre == r2.Nombre)); // Check that both collections (expected and result returned) have the same elements with the same name } }
public async Task Select_NoProyectoSeleccionados() { using (context) { //Arrange var controller = new SolicitudesController(context); controller.ControllerContext.HttpContext = solicitudContext; var proyectosesperados = new Proyecto[2] { new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 70000, Interes = null, MinInversion = 50, Nombre = "POCHOLO RULES", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = null }, new Proyecto { ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = null, MinInversion = 50, Nombre = "GRE-GYM", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = null } }; //Areas y Tipos que se espera que se retornen var tiposEsperados = new TiposInversiones[1] { new TiposInversiones { Nombre = "Crowdfunding" } }; var areasEsperadas = new Areas[1] { new Areas { Nombre = "TIC" } }; SelectedProyectosForSolicitudViewModel proyectos = new SelectedProyectosForSolicitudViewModel { IdsToAdd = null }; // Act var result = controller.SelectProyectosForSolicitud(proyectos); // Assert var viewResult = Assert.IsType <ViewResult>(result); SelectProyectosForSolicitudViewModel model = viewResult.Model as SelectProyectosForSolicitudViewModel; //Comprobamos los proyectos devueltos Assert.Equal(proyectosesperados, model.proyectos, Comparer.Get <Proyecto>((p1, p2) => p1.Nombre == p2.Nombre && p1.Importe == p2.Importe && p1.MinInversion == p2.MinInversion && p1.Progreso == p2.Progreso && p1.ProyectoId == p2.ProyectoId)); //Comprobamos las areas y tipos devueltos Assert.Equal(tiposEsperados, model.Tipos, Comparer.Get <TiposInversiones>((p1, p2) => p1.Nombre == p2.Nombre)); Assert.Equal(areasEsperadas, model.areas, Comparer.Get <Areas>((p1, p2) => p1.Nombre == p2.Nombre)); } }
public async Task Select_FiltroDeCapital() { //Arrenge //Base SQL ya generada con datos incluidos using (context) { var proyectosesperados = new Proyecto[1] { new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 70000, Interes = null, MinInversion = 50, Nombre = "POCHOLO RULES", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = null } }; //Areas y Tipos que se espera que se retornen var tiposEsperados = new TiposInversiones[1] { new TiposInversiones { Nombre = "Crowdfunding" } }; var areasEsperadas = new Areas[1] { new Areas { Nombre = "TIC" } }; var controller = new SolicitudesController(context); controller.ControllerContext.HttpContext = solicitudContext; //Act string[] vacia = new string[0]; var result = controller.SelectProyectosForSolicitud(null, vacia, vacia, 65000, null); //Assert var viewResult = Assert.IsType <ViewResult>(result); SelectProyectosForSolicitudViewModel model = viewResult.Model as SelectProyectosForSolicitudViewModel; //Comprobamos los proyectos devueltos Assert.Equal(proyectosesperados, model.proyectos, Comparer.Get <Proyecto>((p1, p2) => p1.Nombre == p2.Nombre && p1.Importe == p2.Importe && p1.MinInversion == p2.MinInversion && p1.Progreso == p2.Progreso && p1.ProyectoId == p2.ProyectoId)); //Comprobamos las areas y tipos devueltos Assert.Equal(tiposEsperados, model.Tipos, Comparer.Get <TiposInversiones>((p1, p2) => p1.Nombre == p2.Nombre)); Assert.Equal(areasEsperadas, model.areas, Comparer.Get <Areas>((p1, p2) => p1.Nombre == p2.Nombre)); } }
public InversionRecuperadasController_Details_test() { _contextOptions = CreateNewContextOptions(); context = new ApplicationDbContext(_contextOptions); //Insertar datos semilla en la base de datos usando una instancia de contexto var rating = new Rating { Nombre = "A" }; context.Rating.Add(rating); var area = new Areas { Nombre = "Sanidad" }; context.Areas.Add(area); var tipo = new TiposInversiones { Nombre = "Crownfunding" }; context.TiposInversiones.Add(tipo); 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 }; context.Proyecto.Add(proyecto1); context.ProyectoAreas.Add(new ProyectoAreas { Proyecto = proyecto1, Areas = area }); Monedero monedero1 = new Monedero { MonederoId = 1, Dinero = 500 }; context.Monedero.Add(monedero1); 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 }; context.Users.Add(inversor1); Inversion inversion1 = new Inversion { InversionId = 1, Cuota = 150, EstadosInversiones = "En_Curso", Intereses = 50, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 200 }; context.Inversion.Add(inversion1); Inversion inversion2 = new Inversion { InversionId = 2, Cuota = 150, EstadosInversiones = "Finalizado", Intereses = 50, Inversor = inversor1, Proyecto = proyecto1, TipoInversionesId = 1, Total = 200 }; context.Inversion.Add(inversion2); InversionRecuperada invRec1 = new InversionRecuperada { InversionRecuperadaId = 1, CantidadRecuperada = 5, Inversion = inversion1, Comentario = "OK 1", FechaRecuperacion = DateTime.Now, }; InversionRecuperada invRec2 = new InversionRecuperada { InversionRecuperadaId = 2, CantidadRecuperada = 10, Inversion = inversion1, Comentario = "OK 2", FechaRecuperacion = DateTime.Now, }; context.InversionRecuperada.Add(invRec1); context.InversionRecuperada.Add(invRec2); context.SaveChanges(); //Para simular la conexión: System.Security.Principal.GenericIdentity user = new System.Security.Principal.GenericIdentity("*****@*****.**"); System.Security.Claims.ClaimsPrincipal identity = new System.Security.Claims.ClaimsPrincipal(user); inversionRecuperadaContext = new Microsoft.AspNetCore.Http.DefaultHttpContext(); inversionRecuperadaContext.User = identity; }
public SolicitudesController_Details_test() { _contextOptions = CreateNewContextOptions(); // Insert seed data into the database using one instance of the context = new ApplicationDbContext(_contextOptions); context.Users.Add(new Trabajador { UserName = "******", Email = "*****@*****.**", Apellido1 = "Ruiz", Apellido2 = "Villafranca", Domicilio = "C/Hellin", Municipio = "Albacete", NIF = "06290424", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete" }); Areas area = new Areas { Nombre = "TIC" }; context.Areas.Add(area); TiposInversiones tipo = new TiposInversiones { Nombre = "Crowdfunding" }; context.TiposInversiones.Add(tipo); Rating rating1 = new Rating { Nombre = "A" }; Rating rating2 = new Rating { Nombre = "F" }; context.Rating.Add(rating1); context.Rating.Add(rating2); context.Proyecto.Add(new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 70000, Interes = 10, MinInversion = 50, Nombre = "POCHOLO RULES", NumInversores = 0, Plazo = 5, Progreso = 0, RatingId = 1 }); context.Proyecto.Add(new Proyecto { ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = null, MinInversion = 50, Nombre = "GRE-GYM", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = 2 }); context.Proyecto.Add(new Proyecto { ProyectoId = 3, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = null, MinInversion = 50, Nombre = "EINSTEIN-MANIA", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = 1 }); context.Solicitud.Add(new Solicitud { SolicitudId = 1, Estado = Estados.Aceptada, Proyecto = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 70000, Interes = 10, MinInversion = 50, Nombre = "POCHOLO RULES", NumInversores = 0, Plazo = 5, Progreso = 0, RatingId = 1 }, Trabajador = new Trabajador { UserName = "******", Email = "*****@*****.**", Apellido1 = "Ruiz", Apellido2 = "Villafranca", Domicilio = "C/Hellin", Municipio = "Albacete", NIF = "06290424", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete" } }); context.Solicitud.Add(new Solicitud { SolicitudId = 2, Estado = Estados.Rechazada, Proyecto = new Proyecto { ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = null, MinInversion = 50, Nombre = "GRE-GYM", NumInversores = 0, Plazo = null, Progreso = 0, RatingId = 2 }, Trabajador = new Trabajador { UserName = "******", Email = "*****@*****.**", Apellido1 = "Ruiz", Apellido2 = "Villafranca", Domicilio = "C/Hellin", Municipio = "Albacete", NIF = "06290424", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete" } }); context.SaveChanges(); foreach (var proyecto in context.Proyecto.ToList()) { context.ProyectoAreas.Add(new ProyectoAreas { Proyecto = proyecto, Areas = context.Areas.First() }); context.ProyectoTiposInversiones.Add(new ProyectoTiposInversiones { Proyecto = proyecto, TiposInversiones = context.TiposInversiones.First() }); } context.SaveChanges(); //how to simulate the connection System.Security.Principal.GenericIdentity user = new System.Security.Principal.GenericIdentity("*****@*****.**"); System.Security.Claims.ClaimsPrincipal identity = new System.Security.Claims.ClaimsPrincipal(user); solicitudContext = new DefaultHttpContext(); solicitudContext.User = identity; }
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)); } }
//Constructor -> Iniciamos la base de datos InMemory. public InversionsController_Details_Test() { _contextOptions = CreateNewContextOptions(); context = new ApplicationDbContext(_contextOptions); // Insert seed data into the database using one instance of the context //Tipos de Inversiones TiposInversiones tipo1 = new TiposInversiones { Nombre = "Crowdfunding" }; TiposInversiones tipo2 = new TiposInversiones { Nombre = "Venture Capital" }; context.TiposInversiones.Add(tipo1); context.TiposInversiones.Add(tipo2); //Rating Rating rating = new Rating { Nombre = "A" }; context.Rating.Add(rating); //Monedero Monedero monedero = new Monedero { MonederoId = 1, Dinero = 8000 }; context.Monedero.Add(monedero); //Proyectos Proyecto proyecto1 = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = (float)5.90, MinInversion = 50, Nombre = "E-MEDICA", NumInversores = 0, Plazo = 12, Progreso = 0, Rating = rating }; context.Proyecto.Add(proyecto1); //Inversor Inversor inversor = new Inversor { Id = "1", Nombre = "Yasin", Email = "*****@*****.**", Apellido1 = "Muñoz", Apellido2 = "El Merabety", Domicilio = "C/Gabriel Ciscar", Municipio = "Albacete", NIF = "47446245", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PhoneNumber = "684010548", PasswordHash = "password", UserName = "******", Monedero = monedero }; context.Users.Add(inversor); //Inversiones context.Inversion.Add(new Inversion { InversionId = 1, Cuota = 750, Intereses = (float)5.9, Total = (float)794.25, EstadosInversiones = "En Curso", TipoInversionesId = 1, Proyecto = new Proyecto { ProyectoId = 1, FechaExpiracion = new DateTime(2019, 01, 23), Importe = 30000, Interes = (float)5.90, MinInversion = 50, Nombre = "E-MEDICA", NumInversores = 0, Plazo = 12, Progreso = 0, RatingId = 1 }, Inversor = new Inversor { Id = "1", Nombre = "Yasin", Email = "*****@*****.**", Apellido1 = "Muñoz", Apellido2 = "El Merabety", Domicilio = "C/Gabriel Ciscar", Municipio = "Albacete", NIF = "47446245", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PhoneNumber = "684010548", PasswordHash = "password", UserName = "******" } }); context.Inversion.Add(new Inversion { InversionId = 2, Cuota = 850, Intereses = (float)5.9, Total = (float)911.625, EstadosInversiones = "En Curso", TipoInversionesId = 2, Proyecto = new Proyecto { ProyectoId = 2, FechaExpiracion = new DateTime(2019, 01, 14), Importe = 70000, Interes = (float)7.25, MinInversion = 0, Nombre = "PROTOS", NumInversores = 0, Plazo = 48, Progreso = 0, RatingId = 1 }, Inversor = new Inversor { Id = "1", Nombre = "Yasin", Email = "*****@*****.**", Apellido1 = "Muñoz", Apellido2 = "El Merabety", Domicilio = "C/Gabriel Ciscar", Municipio = "Albacete", NIF = "47446245", Nacionalidad = "Española", PaisDeResidencia = "España", Provincia = "Albacete", PhoneNumber = "684010548", PasswordHash = "password", UserName = "******" } }); context.SaveChanges(); //Simulación conexión de un usuario System.Security.Principal.GenericIdentity user = new System.Security.Principal.GenericIdentity("*****@*****.**"); System.Security.Claims.ClaimsPrincipal identity = new System.Security.Claims.ClaimsPrincipal(user); inversionContext = new Microsoft.AspNetCore.Http.DefaultHttpContext(); inversionContext.User = identity; }
public async Task Select_FallandoAreasyTiposInversiones() { // Arrange using (context) //Set the test case will use the inMemory database created in the constructor { var controller = new AccountController(null, null, null, null, context); //Areas var areaEsperada = new Areas[18] { new Areas { AreasId = 1, Nombre = "Sanidad" }, new Areas { AreasId = 2, Nombre = "Consultoria" }, new Areas { AreasId = 3, Nombre = "Educación" }, new Areas { AreasId = 4, Nombre = "Seguridad" }, new Areas { AreasId = 5, Nombre = "Construcción" }, new Areas { AreasId = 6, Nombre = "Transporte" }, new Areas { AreasId = 7, Nombre = "TIC" }, new Areas { AreasId = 8, Nombre = "Ingeniería" }, new Areas { AreasId = 9, Nombre = "Hogar" }, new Areas { AreasId = 10, Nombre = "Alimentación" }, new Areas { AreasId = 11, Nombre = "Textil" }, new Areas { AreasId = 12, Nombre = "Comercio" }, new Areas { AreasId = 13, Nombre = "Hosteleria" }, new Areas { AreasId = 14, Nombre = "Administración" }, new Areas { AreasId = 15, Nombre = "Automóviles" }, new Areas { AreasId = 16, Nombre = "Reparaciones" }, new Areas { AreasId = 17, Nombre = "Banca" }, new Areas { AreasId = 18, Nombre = "Maquinaría" } }; //TiposInversiones var tipoEsperado = new TiposInversiones[3] { new TiposInversiones { TiposInversionesId = 1, Nombre = "Business Angels" }, new TiposInversiones { TiposInversionesId = 2, Nombre = "Crownfunding" }, new TiposInversiones { TiposInversionesId = 3, Nombre = "Venture Capital" } }; //Rating var ratingEsperado = new Rating[4] { new Rating { Nombre = "A" }, new Rating { RatingId = 2, Nombre = "B" }, new Rating { RatingId = 3, Nombre = "C" }, new Rating { RatingId = 4, Nombre = "D" } }; string[] idAreas = new string[1] { "1" }; string[] idRating = new string[1] { "1" }; string[] idTiposInversion = new string[1] { "1" }; SelectedPreferenciasForInversor preferencias = new SelectedPreferenciasForInversor { IdsToAddAreas = null, IdsToAddRating = idRating, IdsToAddTiposInversion = null }; //Act var result = controller.SelectPreferenciasForInversor(preferencias); //Assert var viewResult = Assert.IsType <ViewResult>(result); SelectPreferenciasForInversorViewModel model = viewResult.Model as SelectPreferenciasForInversorViewModel; Assert.Equal(areaEsperada, model.Areas, Comparer.Get <Areas>((a1, a2) => a1.Nombre == a2.Nombre)); Assert.Equal(tipoEsperado, model.TiposInversiones, Comparer.Get <TiposInversiones>((t1, t2) => t1.Nombre == t2.Nombre)); Assert.Equal(ratingEsperado, model.Rating, Comparer.Get <Rating>((r1, r2) => r1.Nombre == r2.Nombre)); } }
public async Task Select_ConParametros() { // Arrange using (context) //Set the test case will use the inMemory database created in the constructor { var controller = new AccountController(null, null, null, null, context); //Areas var areaEsperada = new Areas[18] { new Areas { AreasId = 1, Nombre = "Sanidad" }, new Areas { AreasId = 2, Nombre = "Consultoria" }, new Areas { AreasId = 3, Nombre = "Educación" }, new Areas { AreasId = 4, Nombre = "Seguridad" }, new Areas { AreasId = 5, Nombre = "Construcción" }, new Areas { AreasId = 6, Nombre = "Transporte" }, new Areas { AreasId = 7, Nombre = "TIC" }, new Areas { AreasId = 8, Nombre = "Ingeniería" }, new Areas { AreasId = 9, Nombre = "Hogar" }, new Areas { AreasId = 10, Nombre = "Alimentación" }, new Areas { AreasId = 11, Nombre = "Textil" }, new Areas { AreasId = 12, Nombre = "Comercio" }, new Areas { AreasId = 13, Nombre = "Hosteleria" }, new Areas { AreasId = 14, Nombre = "Administración" }, new Areas { AreasId = 15, Nombre = "Automóviles" }, new Areas { AreasId = 16, Nombre = "Reparaciones" }, new Areas { AreasId = 17, Nombre = "Banca" }, new Areas { AreasId = 18, Nombre = "Maquinaría" } }; //TiposInversiones var tipoEsperado = new TiposInversiones[3] { new TiposInversiones { TiposInversionesId = 1, Nombre = "Business Angels" }, new TiposInversiones { TiposInversionesId = 2, Nombre = "Crownfunding" }, new TiposInversiones { TiposInversionesId = 3, Nombre = "Venture Capital" } }; //Rating var ratingEsperado = new Rating[4] { new Rating { Nombre = "A" }, new Rating { RatingId = 2, Nombre = "B" }, new Rating { RatingId = 3, Nombre = "C" }, new Rating { RatingId = 4, Nombre = "D" } }; string[] idAreas = new string[1] { "1" }; string[] idRating = new string[1] { "1" }; string[] idTiposInversion = new string[1] { "1" }; SelectedPreferenciasForInversor preferencias = new SelectedPreferenciasForInversor { IdsToAddAreas = idAreas, IdsToAddRating = idRating, IdsToAddTiposInversion = idTiposInversion }; //Act var result = controller.SelectPreferenciasForInversor(preferencias); //Assert var viewResult = Assert.IsType <RedirectToActionResult>(result); var currentAreas = viewResult.RouteValues.Values.First(); var currentRating = viewResult.RouteValues.Values.First(); var currentTiposInversiones = viewResult.RouteValues.Values.First(); Assert.Equal(preferencias.IdsToAddAreas, currentAreas); Assert.Equal(preferencias.IdsToAddRating, currentRating); Assert.Equal(preferencias.IdsToAddTiposInversion, currentTiposInversiones); } }