public static void HandleException(this ExceptionContext filterContext) { var ex = filterContext.Exception; var contextResponse = filterContext.HttpContext.Response; LogException(ex); HttpException httpException = new HttpException(null, ex); int httpExceptionCode = httpException.GetHttpCode(); string controllerName = (string)filterContext.RouteData.Values["controller"]; string actionName = (string)filterContext.RouteData.Values["action"]; HandleErrorInfo model = new HandleErrorInfo(ex, controllerName ?? "Unknown", actionName ?? "Unknown"); ViewResult result = new ViewResult { ViewName = "Error", MasterName = "_Layout", ViewData = new ViewDataDictionary<HandleErrorInfo>(model), TempData = filterContext.Controller.TempData }; filterContext.Result = result; filterContext.ExceptionHandled = true; contextResponse.Clear(); contextResponse.StatusCode = httpExceptionCode; contextResponse.TrySkipIisCustomErrors = true; }
public override void OnActionExecuting(ActionExecutingContext filterContext) { string sign = filterContext.HttpContext.Request.Headers["x-svhoo-login"]; if (!string.IsNullOrEmpty(sign)) { sign = Cryptography.Decrypt(sign, Cryptography.EncryptKey, Cryptography.EncryptIV, EncryptMode.DES); string[] list = sign.Split('\n'); int sysNo = 0; DateTime loginTime = DateTime.Now; if (list.Length < 3 || int.TryParse(list[1], out sysNo) == false || DateTime.TryParse(list[2], out loginTime) == false) { ViewResult view = new ViewResult(); view.ViewData = new ViewDataDictionary(); view.ViewData.Model = new Message() { Data = "Not Login", Type = MessageType.Error }; filterContext.Result = view; return; } ServiceContext.CustomerID = sysNo; ServiceContext.CustomerName = list[0]; ServiceContext.CustomerLoginTime = loginTime; } else { ViewResult view = new ViewResult(); view.ViewData = new ViewDataDictionary(); view.ViewData.Model = new Message() { Data = "Login Sign Error", Type = MessageType.Error }; filterContext.Result = view; return; } base.OnActionExecuting(filterContext); }
public void OnException(ExceptionContext filterContext) { var loggerFactory = DependencyResolver.Current.GetService<ILoggerFactory>(); var logger = loggerFactory.GetLogger("MasterHandleError"); logger.LogException(filterContext.Exception); var viewDataDictionary = new ViewDataDictionary(); viewDataDictionary[DataKeys.AllowRobots] = AllowRobots.None; string errorMessage = null; var portfotolioException = filterContext.Exception as PortfotolioException; if (portfotolioException != null) { errorMessage = portfotolioException.Message; } viewDataDictionary.Model = new ModelError(errorMessage); var viewResult = new ViewResult { ViewData = viewDataDictionary, ViewName = "Error", }; filterContext.Result = viewResult; filterContext.HttpContext.Response.SetHttpHeader(filterContext.Exception); filterContext.ExceptionHandled = true; }
protected void Application_Error() { try { var logger = ObjectFactory.GetInstance<ILog>(); Exception exception = Server.GetLastError() ?? new Exception("Unable to get exception."); logger.Fatal("An unhandled exception occurred.", exception); } catch { } HttpContext ctx = HttpContext.Current; ctx.Response.Clear(); RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext; string controllerName = rc.RouteData.GetRequiredString("controller"); IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory(); IController controller = factory.CreateController(rc, controllerName); var cc = new ControllerContext(rc, (ControllerBase)controller); var viewResult = new ViewResult { ViewName = "Error" }; viewResult.ExecuteResult(cc); ctx.Server.ClearError(); }
public void testing_that_AssertViewName_passing_the_correct_viewresult_viewname_should_pass() { ViewResult viewResult = new ViewResult(); viewResult.ViewName = "SomeName"; viewResult.AssertViewName("SomeName"); }
public override void ExecuteResult(ControllerContext context) { var response = context.HttpContext.Response; var request = context.HttpContext.Request; // TODO: Add logic for not authorized requests string viewName = StatusCode == HttpStatusCode.NotFound ? NotFoundView : ErrorView; // We need to clear both headers and content // because Clear() doesn't clear the headers // see: http://msdn.microsoft.com/en-us/library/system.web.httpresponse.clear.aspx response.ClearHeaders(); response.ClearContent(); response.StatusCode = (int)StatusCode; // Certain versions of IIS will sometimes use their own error page when // they detect a server error. Setting this property indicates that we // want it to try to render ASP.NET MVC's error page instead. response.TrySkipIisCustomErrors = true; if (request.IsAjaxRequest()) { // TODO: Add logic for AJAX requests } var viewResult = new ViewResult { ViewName = viewName, ViewData = ViewData ?? new ViewDataDictionary() }; viewResult.ExecuteResult(context); }
private static void RedirectToError() { HttpContext ctx = HttpContext.Current; var errorMessage = Convert.ToString(ctx.Server.GetLastError()); var error = new KeyValuePair<string, object>("ErrorMessage", errorMessage); foreach (var er in ctx.AllErrors) { InternalLog.WriteLog(HttpContext.Current.Request.UserAgent, HttpContext.Current.Request.Url.ToString(), er.Message, er.StackTrace.ToString()); } ctx.Response.Clear(); if (ctx.CurrentHandler != null && ctx.CurrentHandler.GetType().ToString().Equals("System.Web.Mvc.MvcHandler")) { RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext; IControllerFactory factory = ControllerBuilder.Current.GetControllerFactory(); IController controller = factory.CreateController(rc, "Home"); var cc = new ControllerContext(rc, (ControllerBase)controller); var viewResult = new ViewResult { ViewName = "InternalError" }; viewResult.ViewData.Add(error); viewResult.ExecuteResult(cc); ctx.Response.End(); } }
public void Should_resolve_policy_violation_handler_for_exception_from_container() { // Arrange var expectedActionResult = new ViewResult { ViewName = "SomeViewName" }; var violationHandler = new DenyAnonymousAccessPolicyViolationHandler(expectedActionResult); FakeIoC.GetAllInstancesProvider = () => new List<IPolicyViolationHandler> { violationHandler }; SecurityConfigurator.Configure(policy => { policy.ResolveServicesUsing(FakeIoC.GetAllInstances); policy.GetAuthenticationStatusFrom(StaticHelper.IsAuthenticatedReturnsFalse); policy.For<BlogController>(x => x.Index()).DenyAnonymousAccess(); }); var securityHandler = new SecurityHandler(); // Act var result = securityHandler.HandleSecurityFor(NameHelper.Controller<BlogController>(), "Index", SecurityContext.Current); // Assert Assert.That(result, Is.EqualTo(expectedActionResult)); }
void IExceptionFilter.OnException(ExceptionContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } if (!filterContext.ExceptionHandled) { //并不handle exception,记录日志后将异常bubble给HandleErrorAttribute System.Web.Routing.RouteValueDictionary dictionary = filterContext.RouteData.Values; //Logger.ErrorException(string.Format("controller:{0} action:{1}", dictionary["controller"], dictionary["action"]), filterContext.Exception); //处理404错误 if (!filterContext.IsChildAction && !filterContext.ExceptionHandled && filterContext.HttpContext.IsCustomErrorEnabled) { Exception innerException = filterContext.Exception; if (new HttpException(null, innerException).GetHttpCode() == 404) { ViewResult result = new ViewResult(); result.ViewName = "NotFound"; result.TempData = filterContext.Controller.TempData; filterContext.Result = result; filterContext.ExceptionHandled = true; filterContext.HttpContext.Response.Clear(); filterContext.HttpContext.Response.StatusCode = 404; filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; } } } }
public void OnException(ExceptionContext context) { if (HttpContext.Current != null) HttpContext.Current.Items["CurrentlyProcessingException"] = true; ErrorLog.GetDefault(HttpContext.Current).Log(new Error(context.Exception, HttpContext.Current)); BlogConfig blogConfig; using(var session = DocumentStoreHolder.DocumentStore.OpenSession()) { blogConfig = session.Load<BlogConfig>("Blog/Config") ?? BlogConfig.NewDummy(); } var controllerName = (string) context.RouteData.Values["controller"]; var actionName = (string) context.RouteData.Values["action"]; var viewResult = new ViewResult { ViewName = "500", ViewData = new ViewDataDictionary(new HandleErrorInfo(context.Exception, controllerName, actionName)), ViewBag = { BlogConfig = blogConfig.MapTo<BlogConfigViewModel>() } }; context.ExceptionHandled = true; context.HttpContext.Response.StatusCode = 500; context.HttpContext.Response.TrySkipIisCustomErrors = true; context.HttpContext.Response.Clear(); context.Result = viewResult; }
public void BeEmpty_GivenNotEmpty_ShouldPass() { ActionResult result = new ViewResult(); Action a = () => result.Should().BeEmptyResult(); a.ShouldThrow<Exception>() .WithMessage("Expected ActionResult to be \"EmptyResult\", but found \"ViewResult\""); }
protected string GetPartialViewName(ViewResult viewResult, ControllerContext controllerContext) { var routeData = controllerContext.RequestContext.RouteData; var viewName = viewResult.ViewName.NullIfEmpty() ?? routeData.GetRequiredString("action"); // Check for view name override (child actions only) if (viewOverrideParameter.IsNotNullOrEmpty() && controllerContext.IsChildAction) { var overrideView = routeData.Values.GetOrDefault(viewOverrideParameter) as string; if (overrideView.IsNotNullOrEmpty()) { return overrideView; } } // Otherwise use partial view prefix if (viewName.IsNullOrEmpty()) { throw new InvalidOperationException("View name cannot be null."); } var partialViewName = string.Concat(partialViewPrefix, viewName); // check if partial exists, otherwise we'll use the same view but with no layout page var partialExists = viewResult.ViewEngineCollection.FindPartialView(controllerContext, partialViewName).View != null; return partialExists ? partialViewName : viewName; }
public ViewResult ProdutoCadastrarSave(Produto p) { ViewResult vr = new ViewResult(); rdnProduto rdn = new rdnProduto(); Mensagem msg = new Mensagem(); String resultado = rdnProduto.adicionar(p); try { int id = Convert.ToInt32(resultado); msg.Titulo = "Produto cadastrado com sucesso. Código: " + resultado; msg.Conteudo = "Deseja cadastrar imagens para o produto cadasrtado?"; msg.botaoEsquerdoLink = "ProdutoCadastrarImagem"; msg.botaoEsquerdoTitulo = "Sim"; } catch (Exception e) { msg.Titulo = "Erro ao inserir."; msg.Conteudo = "Produto cadastrado com sucesso." + resultado + e; } vr.ViewBag.Categorias = rdnCategoria.listarTodos(); vr.ViewBag.SubCategorias = rdnSubCategoria.listarTodos(); vr.ViewBag.Resultado = resultado; vr.ViewBag.Mensagem = msg; vr.ViewName = "ProdutoLista"; return vr; }
public void RequireHttpsAttributeDoesNotThrowForInsecureConnectionIfNotAuthenticatedOrForcingSSLAndOnlyWhenAuthenticatedSet() { // Arrange var mockAuthContext = new Mock<AuthorizationContext>(MockBehavior.Strict); var mockConfig = new Mock<IAppConfiguration>(); var mockFormsAuth = new Mock<IFormsAuthenticationService>(); mockConfig.Setup(cfg => cfg.RequireSSL).Returns(true); mockAuthContext.SetupGet(c => c.HttpContext.Request.IsSecureConnection).Returns(false); mockAuthContext.SetupGet(c => c.HttpContext.Request.IsAuthenticated).Returns(false); var context = mockAuthContext.Object; mockFormsAuth.Setup(fas => fas.ShouldForceSSL(context.HttpContext)).Returns(false); var attribute = new RequireRemoteHttpsAttribute() { Configuration = mockConfig.Object, OnlyWhenAuthenticated = true, FormsAuthentication = mockFormsAuth.Object }; var result = new ViewResult(); context.Result = result; // Act attribute.OnAuthorization(context); // Assert Assert.Same(result, context.Result); }
public void OnAuthorization(AuthorizationContext filterContext) { if (filterContext.HttpContext.Request.IsAuthenticated) { var User = (USER)filterContext.HttpContext.Session["USER"]; if (User != null) { if (!(User.ROLE.Name == "ADMINISTRATEUR" || User.ROLE.Name == "VENDEUR" || User.ROLE.Name == "CLIENT")) { ViewResult Result = new ViewResult(); Result.ViewName = "Error"; Result.ViewBag.ErrorMessage = "Accès réservé aux clients"; filterContext.Result = Result; } } }else { ViewResult Result = new ViewResult(); Result.ViewName = "Error"; Result.ViewBag.ErrorMessage = "Vous n'êtes pas authentifié"; filterContext.Result = Result; } }
protected void AssertRandomBranchesPresentInViewBag(ViewResult viewResult) { var actualBranches = viewResult.ViewBag.Branches as IEnumerable<SelectListItem>; actualBranches.Count().ShouldEqual(2); actualBranches.Any(item => item.Text == "foo" && item.Value == "foo").ShouldBeTrue(); actualBranches.Any(item => item.Text == "bar" && item.Value == "bar").ShouldBeTrue(); }
public void Setup() { _viewResult = new ViewResult(); _model = new TestViewModel { Property1 = "test", Property2 = 3 }; _viewResult.ViewData.Model = _model; _viewResultTest = new ViewResultTest(_viewResult, new ViewTestController()); }
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext) { ViewResult result = new ViewResult() { ViewName = "Error" }; result.ViewBag.ErrorMsg = "AccessDenied"; filterContext.Result = result; }
public virtual void OnException(ExceptionContext filterContext) { if (filterContext == null) { throw new ArgumentNullException("filterContext"); } if (!filterContext.IsChildAction && (!filterContext.ExceptionHandled && filterContext.HttpContext.IsCustomErrorEnabled)) { Exception innerException = filterContext.Exception; if ((new HttpException(null, innerException).GetHttpCode() == 404)) { string controllerName = (string)filterContext.RouteData.Values["controller"]; string actionName = (string)filterContext.RouteData.Values["action"]; HandleErrorInfo model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName); ViewResult result = new ViewResult { ViewName = this.View, MasterName = this.Master, ViewData = new ViewDataDictionary<HandleErrorInfo>(model), TempData = filterContext.Controller.TempData }; filterContext.Result = result; filterContext.ExceptionHandled = true; filterContext.HttpContext.Response.Clear(); filterContext.HttpContext.Response.StatusCode = 404; filterContext.HttpContext.Response.TrySkipIisCustomErrors = true; filterContext.HttpContext.Response.ClearHeaders(); } } }
public static void UnhandledError(ExceptionContext filterContext) { var exception = filterContext.Exception; if (filterContext.HttpContext.Request.IsAjaxRequest()) { var errorObject = new { ErrorMessage = exception.Message, Stacktrace = exception.ToString() }; filterContext.HttpContext.Response.StatusCode = 500; filterContext.Result = new JsonResult() { JsonRequestBehavior = JsonRequestBehavior.AllowGet, ContentType = "application/json", Data = errorObject }; return; } ErrorViewModel viewmodel = ErrorViewModel.CreateFromError(exception, "Unhandled Error Occured"); ViewDataDictionary viewData = new ViewDataDictionary { Model = viewmodel }; ViewResult viewresult = new ViewResult(); viewresult.ViewName = "UnhandledError"; viewresult.ViewData = viewData; filterContext.Result = viewresult; }
public static ActionResult AuthorizeValidationError(this Controller controller, AuthorizeRequestValidationException exception) { var roException = exception as AuthorizeRequestResourceOwnerException; if (roException != null) { Tracing.Error(roException.Message); var result = new ViewResult { ViewName = "ValidationError", }; result.ViewBag.Message = roException.Message; return result; } var clientException = exception as AuthorizeRequestClientException; if (clientException != null) { Tracing.Error(clientException.Message); return new ClientErrorResult(clientException.RedirectUri, clientException.Error, clientException.ResponseType, clientException.State); } throw new ArgumentException("Invalid exception type"); }
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext, IFacebookApplication settings) { Contract.Requires(filterContext != null); Contract.Requires(filterContext.HttpContext != null); Contract.Requires(filterContext.HttpContext.Request != null); Contract.Requires(filterContext.RouteData != null); Contract.Requires(filterContext.Controller != null); Contract.Requires(settings != null); var model = new FacebookAuthorizeInfo( GetLoginUrl(settings, filterContext.HttpContext, null), Perms, filterContext.HttpContext.Request.QueryString.AllKeys.Contains("error_reason"), filterContext.RouteData.Values); var viewResult = new ViewResult { MasterName = Master, ViewName = View, ViewData = new ViewDataDictionary<FacebookAuthorizeInfo>(model), TempData = filterContext.Controller.TempData }; filterContext.Result = viewResult; }
public ViewResult ProdutoListar(int cat = 0, int subcat = 0) { List<Produto> listaProduto = new List<Produto>(); ViewResult vr = new ViewResult(); if (cat != 0) { listaProduto = rdnProduto.listarTodos(cat); vr.ViewBag.listaProduto = listaProduto; } if (subcat != 0) { listaProduto = rdnProduto.listarTodos(0, subcat); vr.ViewBag.listaProduto = listaProduto; } if (subcat == 0 && cat == 0) { listaProduto = rdnProduto.listarTodos(); vr.ViewBag.listaProduto = listaProduto; } vr.ViewBag.Categorias = rdnCategoria.listarTodos(); vr.ViewBag.SubCategorias = rdnSubCategoria.listarTodos(); vr.ViewName = "ProdutoListar"; return vr; }
public ViewResult Login(Usuario u) { rdnLogin rdn = new rdnLogin(); ViewResult vr = new ViewResult(); vr.ViewBag.Categorias = rdnCategoria.listarTodos(); vr.ViewBag.SubCategorias = rdnSubCategoria.listarTodos(); vr.ViewBag.Produtos = rdnProduto.listarTodos(); Usuario usuario = rdn.EftuaLogin(u); if (usuario != null ) { vr.ViewName = "sucesso"; Session["usuarioLogado"] = u; } else { vr.ViewName = ("index"); vr.ViewBag.Usuario = u; vr.ViewBag.Mensagem = "Login ou senha inválidos."; } return vr; }
public void BeRedirect_GivenNotRedirect_ShouldFail() { ActionResult result = new ViewResult(); Action a = () => result.Should().BeRedirectResult(); a.ShouldThrow<Exception>() .WithMessage("Expected ActionResult to be \"RedirectResult\", but found \"ViewResult\""); }
public void Should_resolve_policy_violation_handler_for_exception_from_container() { // Arrange var controllerName = NameHelper.Controller<BlogController>(); const string actionName = "Index"; var events = new List<ISecurityEvent>(); SecurityDoctor.Register(events.Add); var expectedActionResult = new ViewResult { ViewName = "SomeViewName" }; var violationHandler = new DenyAnonymousAccessPolicyViolationHandler(expectedActionResult); FakeIoC.GetAllInstancesProvider = () => new List<IPolicyViolationHandler> { violationHandler }; SecurityConfigurator.Configure(policy => { policy.ResolveServicesUsing(FakeIoC.GetAllInstances); policy.GetAuthenticationStatusFrom(StaticHelper.IsAuthenticatedReturnsFalse); policy.For<BlogController>(x => x.Index()).DenyAnonymousAccess(); }); var securityHandler = new SecurityHandler(); // Act var result = securityHandler.HandleSecurityFor(controllerName, actionName, SecurityContext.Current); // Assert Assert.That(result, Is.EqualTo(expectedActionResult)); Assert.That(events.Any(e => e.Message == "Handling security for {0} action {1}.".FormatWith(controllerName, actionName))); Assert.That(events.Any(e => e.Message == "Finding policy violation handler using convention {0}.".FormatWith(typeof(FindByPolicyNameConvention)))); Assert.That(events.Any(e => e.Message == "Found policy violation handler {0}.".FormatWith(violationHandler.GetType().FullName))); Assert.That(events.Any(e => e.Message == "Handling violation with {0}.".FormatWith(violationHandler.GetType().FullName))); Assert.That(events.Any(e => e.Message == "Done enforcing policies. Violation occured!")); }
[InlineData(44300, "{0}:44300")] // Non-standard Port, Authenticated, always force SSL for this action public void RequireHttpsAttributeRedirectsGetRequest(int port, string hostFormatter) { // Arrange var mockAuthContext = new Mock<AuthorizationContext>(MockBehavior.Strict); var mockConfig = new Mock<IAppConfiguration>(); var mockFormsAuth = new Mock<IFormsAuthenticationService>(); mockAuthContext.SetupGet(c => c.HttpContext.Request.HttpMethod).Returns("get"); mockAuthContext.SetupGet(c => c.HttpContext.Request.Url).Returns(new Uri("http://test.nuget.org/login")); mockAuthContext.SetupGet(c => c.HttpContext.Request.RawUrl).Returns("/login"); mockAuthContext.SetupGet(c => c.HttpContext.Request.IsSecureConnection).Returns(false); mockConfig.Setup(cfg => cfg.RequireSSL).Returns(true); mockConfig.Setup(cfg => cfg.SSLPort).Returns(port); var attribute = new RequireSslAttribute() { Configuration = mockConfig.Object }; var result = new ViewResult(); var context = mockAuthContext.Object; // Act attribute.OnAuthorization(context); // Assert Assert.IsType<RedirectResult>(context.Result); Assert.Equal("https://" + String.Format(hostFormatter, "test.nuget.org") + "/login", ((RedirectResult)context.Result).Url); }
public override void OnActionExecuting(ActionExecutingContext filterContext) { string sign = filterContext.HttpContext.Request.Headers["x-svhoo-access"]; if (!string.IsNullOrEmpty(sign)) { if (sign != "10101100897") { ViewResult view = new ViewResult(); view.ViewData = new ViewDataDictionary(); view.ViewData.Model = new Message() { Data = "Not Auto", Type = MessageType.Error }; filterContext.Result = view; return; } } else { ViewResult view = new ViewResult(); view.ViewData = new ViewDataDictionary(); view.ViewData.Model = new Message() { Data = "Access Sign Error", Type = MessageType.Error }; filterContext.Result = view; return; } base.OnActionExecuting(filterContext); }
//Обработка ошибок для всего приложения protected void Application_Error(object sender, EventArgs e) { string requestType=Request.RequestType; if (requestType.Equals("GET")) { HttpContext ctx = HttpContext.Current; Exception ex = ctx.Server.GetLastError(); var httpException = ex as HttpException; if (httpException != null) { if (httpException.GetHttpCode() == 404) { ctx.Response.Clear(); RequestContext rc = ((MvcHandler)ctx.CurrentHandler).RequestContext; IController controller = new HomeController(); // Здесь можно использовать любой контроллер var context = new ControllerContext(rc, (ControllerBase)controller); var viewResult = new ViewResult(); //страницы будут искаться в Views/Shared viewResult.ViewName = "Error404"; viewResult.ViewData.Model = new HandleErrorInfo(ex, context.RouteData.GetRequiredString("controller"), context.RouteData.GetRequiredString("action")); viewResult.ExecuteResult(context); ctx.Server.ClearError(); } } } }
public void TestListInvoices() { InvoiceController ic = new InvoiceController(); System.Web.Mvc.ViewResult result = ic.Index(null, null, null) as ViewResult; Assert.IsNotNull(result.ViewData.Model); Assert.IsInstanceOf(typeof(IPagedList <Invoice>), result.ViewData.Model); }
public override ActionResult Build(object data) { ActionResult actionResult = new System.Web.Mvc.ViewResult() { ViewData = new ViewDataDictionary(data), ViewName = _viewName }; return(actionResult); }
public void TestEditInvoiceDetails() { InvoiceDetailsController idc = new InvoiceDetailsController(); System.Web.Mvc.ViewResult result = idc.Index(); InvoiceDetails id = ((List <InvoiceDetails>)result.ViewData.Model).First(); System.Web.Mvc.ActionResult invoiceDetailsEdition = idc.Edit(id.InvoiceDetailsID); //post edited id.Price = 9999; System.Web.Mvc.ActionResult resultEdition = idc.Edit(id); Assert.IsInstanceOf(typeof(System.Web.Mvc.PartialViewResult), resultEdition); }
public void TestDeleteInvoiceDetails() { InvoiceDetailsController idc = new InvoiceDetailsController(); System.Web.Mvc.ViewResult result = idc.Index(); InvoiceDetails id = ((List <InvoiceDetails>)result.ViewData.Model).First(); Assert.NotNull(id); //ask deletion action System.Web.Mvc.ActionResult invoiceDetailsAskDeletion = idc.Delete(id.InvoiceDetailsID); Assert.IsInstanceOf(typeof(System.Web.Mvc.PartialViewResult), invoiceDetailsAskDeletion); //delete action System.Web.Mvc.ActionResult invoiceDetailDeletion = idc.DeleteConfirmed(id.InvoiceDetailsID); Assert.IsInstanceOf(typeof(System.Web.Mvc.RedirectToRouteResult), invoiceDetailDeletion); }
public void TestDeleteInvoice() { InvoiceController ic = new InvoiceController(); System.Web.Mvc.ViewResult result = ic.Index(null, null, null) as ViewResult; Invoice i = ((IPagedList <Invoice>)result.ViewData.Model).First(); Assert.NotNull(i); //ask deletion action System.Web.Mvc.ActionResult invoiceAskDeletion = ic.Delete(i.InvoiceID); Assert.IsInstanceOf(typeof(System.Web.Mvc.ViewResult), invoiceAskDeletion); //delete action System.Web.Mvc.ActionResult invoiceDeletion = ic.DeleteConfirmed(i.InvoiceID); Assert.IsInstanceOf(typeof(System.Web.Mvc.RedirectToRouteResult), invoiceDeletion); }
protected static void AssertGamingConsolesInViewBag(ViewResult viewResult) { var selectListItems = viewResult.ViewBag.GamingConsoles as IEnumerable<SelectListItem>; selectListItems.Count().ShouldEqual(1); selectListItems.First().Text.ShouldEqual("Console1"); selectListItems.First().Value.ShouldEqual("Console1"); }