public async Task Select_ProyectoSeleccionados()
        {
            using (context)
            {
                //Arrange

                var controller = new SolicitudesController(context);
                controller.ControllerContext.HttpContext = solicitudContext;
                String[] ids = new string[1] {
                    "1"
                };

                SelectedProyectosForSolicitudViewModel proyectos = new SelectedProyectosForSolicitudViewModel {
                    IdsToAdd = ids
                };

                // Act

                var result = controller.SelectProyectosForSolicitud(proyectos);

                // Assert
                var viewResult = Assert.IsType <RedirectToActionResult>(result);
                Assert.Equal(viewResult.ActionName, "Create");
                var resultadoproyectos = viewResult.RouteValues.Values.First();
                Assert.Equal(proyectos.IdsToAdd, resultadoproyectos);
            }
        }
        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));
            }
        }