public async Task vistaSeleccionHabitacionReserva_WithHabitacionesDisponibles()
        {
            // Arrange
            using (context)
            {
                var controller = new ReservasController(context);
                DatosHabitacionReservaViewModel expectedModel = new DatosHabitacionReservaViewModel
                {
                    idPersona     = 2,
                    nombre        = "Prueba2",
                    apellidos     = "Prueba2 Prueba2",
                    nif           = "87654321B",
                    comentarios   = "patata",
                    fechaFin      = new DateTime(2016, 11, 26),
                    fechaInicio   = new DateTime(2016, 11, 24),
                    regimenComida = 1,
                    Descuentos    = new Descuento[1] {
                        new Descuento {
                            idDescuento = 1, fechaInicio = new DateTime(2016, 11, 20), fechaFin = new DateTime(2016, 11, 29)
                        }
                    },
                    Habitaciones = new Habitacion[1] {
                        new Habitacion {
                            numero = 2, precio = 40
                        }
                    }
                };

                DatosHabitacionReservaViewModel entrada = new DatosHabitacionReservaViewModel
                {
                    idPersona     = 2,
                    nombre        = "Prueba2",
                    apellidos     = "Prueba2 Prueba2",
                    nif           = "87654321B",
                    comentarios   = "patata",
                    fechaFin      = new DateTime(2016, 11, 26),
                    fechaInicio   = new DateTime(2016, 11, 24),
                    regimenComida = 1
                };

                // Act
                var result = await controller.vistaSeleccionHabitacionReserva(entrada);

                //Assert
                var viewResult = Assert.IsType <ViewResult>(result);
                DatosHabitacionReservaViewModel model = (result as ViewResult).Model as DatosHabitacionReservaViewModel;

                //Comprobación del listado de descuentos disponibles
                List <Descuento> expectDescuentos = expectedModel.Descuentos.ToList();
                List <Descuento> modelDescuentos  = model.Descuentos.ToList();
                Assert.Equal(expectDescuentos, modelDescuentos, Comparer.Get <Descuento>((p1, p2) => p1.idDescuento == p2.idDescuento));

                //Comprobación del listado de habitaciones disponibles
                List <Habitacion> expectHabitaciones = expectedModel.Habitaciones.ToList();
                List <Habitacion> modelHabitaciones  = model.Habitaciones.ToList();
                Assert.Equal(expectHabitaciones, modelHabitaciones, Comparer.Get <Habitacion>((p1, p2) => p1.numero == p2.numero));

                //Comprobación de los otros datos del objeto model
                Assert.Equal(expectedModel, model, Comparer.Get <DatosHabitacionReservaViewModel>((p1, p2) => p1.idPersona == p2.idPersona && p1.comentarios == p2.comentarios && p1.fechaInicio == p2.fechaInicio && p1.fechaFin == p2.fechaFin && p1.regimenComida == p2.regimenComida));
            }
        }