public async Task SeleccionComensales_Failure() { //Arrange using (context) { var controller = new MenusController(context); Menu menu = new Menu { idServicio = 1, nombre = "TestPC", horaInicio = new DateTime(2001, 12, 13, 13, 00, 00), horaFin = new DateTime(2001, 12, 13, 16, 00, 00), precio = 10F }; int nComensales = 1; int nHabitacion = 101; ReservaMenuViewModel rmvm = new ReservaMenuViewModel { idServicio = menu.idServicio, nHabitacion = nHabitacion }; ResultMenuViewModel remvm = new ResultMenuViewModel { menu = menu, result = "Error: out of time" }; SystemTime.Now = () => new DateTime(2016, 10, 20, 12, 00, 00); // Act var result = await controller.SeleccionComensales(nComensales, rmvm.nHabitacion, rmvm.idServicio, ""); //Assert var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("ContratarMenu", viewResult.ActionName); ResultMenuViewModel vmResult = new ResultMenuViewModel(); List <string> keys = new List <string>(); string aux; int i = 0; foreach (var key in viewResult.RouteValues.Keys) { aux = Assert.IsType <string>(key); Assert.Equal(aux, "key", Comparer.Get <string>((s1, s2) => s1 == "result" || s1 == "menu")); keys.Add(aux); i++; } Assert.Equal(i, 2); i = 0; foreach (var c in viewResult.RouteValues.Values) { aux = keys[i]; if (aux == "result") { i++; vmResult.result = Assert.IsType <string>(c); } else if (aux == "menu") { i++; vmResult.menu = Assert.IsType <Menu>(c); } else { i++; } } Assert.Equal(remvm, vmResult, Comparer.Get <ResultMenuViewModel>((rm1, rm2) => rm1.result == rm2.result && rm1.menu.idServicio == rm2.menu.idServicio)); } }
public async Task SeleccionComensales_InvalidMenu() { //Arrange using (context) { var controller = new MenusController(context); Menu menu = new Menu { idServicio = 0, nombre = "TestPC", horaInicio = new DateTime(2001, 12, 13, 13, 00, 00), horaFin = new DateTime(2001, 12, 13, 16, 00, 00), precio = 10F }; Habitacion habitacion = new Habitacion { numero = 101 }; int nComensales = 1; ResultMenuViewModel remvm = new ResultMenuViewModel { menu = menu, result = "Failure" }; // Act var result = await controller.SeleccionComensales(nComensales, habitacion.numero, menu.idServicio, ""); //Assert var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("ContratarMenu", viewResult.ActionName); string vmResult = "NOP"; List <string> keys = new List <string>(); string aux; int i = 0; foreach (var key in viewResult.RouteValues.Keys) { aux = Assert.IsType <string>(key); Assert.Equal(aux, "key", Comparer.Get <string>((s1, s2) => s1 == "result" || s1 == "menu")); keys.Add(aux); i++; } Assert.Equal(i, 2); i = 0; foreach (var c in viewResult.RouteValues.Values) { aux = keys[i]; if (aux == "result") { i++; vmResult = Assert.IsType <string>(c); } else if (aux == "menu") { i++; Assert.Null(c); } else { i++; } } Assert.Equal(remvm.result, vmResult); } }