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)); } }