public async Task ContratarMenu_Paid() { //Arrange using (context) { var controller = new MenusController(context); Menu menu = new Menu { idServicio = 1, nombre = "TestMP", horaInicio = new DateTime(2016, 1, 1, 9, 0, 0), horaFin = new DateTime(2016, 1, 1, 11, 0, 0) }; ResultMenuViewModel remvm = new ResultMenuViewModel { menu = menu, result = "Success" }; SystemTime.Now = () => new DateTime(2016, 10, 20, 12, 00, 00); // Act var result = await controller.ContratarMenu(menu.idServicio, 100, menu.idServicio, 100); //Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.Equal("ContratarMenu", viewResult.ViewName); var mResult = Assert.IsType <ResultMenuViewModel>(viewResult.Model); Assert.Equal(remvm, mResult, Comparer.Get <ResultMenuViewModel>((rm1, rm2) => rm1.result == rm2.result && rm1.menu.idServicio == rm2.menu.idServicio)); } }
public async Task ContratarMenu_InvalidMenu() { //Arrange using (context) { var controller = new MenusController(context); ReservaMenuViewModel rmvm = new ReservaMenuViewModel(); Menu menu = new Menu(); ResultMenuViewModel remvm = new ResultMenuViewModel { menu = menu, result = "Error: Invalid menu" }; SystemTime.Now = () => new DateTime(2016, 10, 20, 12, 00, 00); // Act var result = await controller.ContratarMenu(menu.idServicio, 100, menu.idServicio, 100); //Assert var viewResult = Assert.IsType <ViewResult>(result); Assert.Equal("ContratarMenu", viewResult.ViewName); var mResult = Assert.IsType <ResultMenuViewModel>(viewResult.Model); Assert.Null(mResult.menu); Assert.Equal(remvm.result, mResult.result); } }
public async Task ContratarMenu_NotPaid() { //Arrange using (context) { var controller = new MenusController(context); ReservaMenuViewModel exResult = new ReservaMenuViewModel(); Menu menu = new Menu { idServicio = 2, nombre = "TestPC", horaInicio = new DateTime(2016, 1, 1, 13, 0, 0), horaFin = new DateTime(2016, 1, 1, 16, 0, 0) }; exResult.nHabitacion = 100; exResult.idServicio = menu.idServicio; SystemTime.Now = () => new DateTime(2016, 10, 20, 12, 00, 00); // Act var result = await controller.ContratarMenu(menu.idServicio, 100, menu.idServicio, 100); //Assert var viewResult = Assert.IsType <RedirectToActionResult>(result); Assert.Equal("SeleccionComensales", viewResult.ActionName); ReservaMenuViewModel vmResult = new ReservaMenuViewModel(); 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 == "nHabitacion" || s1 == "idServicio")); keys.Add(aux); i++; } Assert.Equal(i, 2); i = 0; foreach (var c in viewResult.RouteValues.Values) { aux = keys[i]; if (aux == "nHabitacion") { i++; vmResult.nHabitacion = Assert.IsType <int>(c); } else if (aux == "idServicio") { i++; vmResult.idServicio = Assert.IsType <int>(c); } else { i++; } } Assert.Equal(i, 2); Assert.Equal(exResult, vmResult, Comparer.Get <ReservaMenuViewModel>((v1, v2) => v1.nHabitacion == v2.nHabitacion && v1.idServicio == v2.idServicio)); } }