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);
            }
        }
Example #2
0
        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");
            }
        }
Example #3
0
        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");
            }
        }
Example #4
0
        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));
            }
        }
Example #7
0
        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");
            }
        }
Example #8
0
        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)));
            }
        }
Example #9
0
        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)));
            }
        }