public void WithDefaultViewName_GivenExpectedValue_ShouldPass() { ActionResult result = new PartialViewResult { ViewName = String.Empty }; result.Should().BePartialViewResult().WithDefaultViewName(); }
public ActionResult View4() { PartialViewResult pr = new PartialViewResult(); pr.SingleControl = true; pr.WrapByScriptTag = false; return pr; }
public void FindView_UsesViewEngine_FromPartialViewResult() { // Arrange var context = GetActionContext(); var executor = GetViewExecutor(); var viewName = "my-view"; var viewEngine = new Mock<ICompositeViewEngine>(); viewEngine .Setup(e => e.FindPartialView(context, viewName)) .Returns(ViewEngineResult.Found(viewName, Mock.Of<IView>())) .Verifiable(); var viewResult = new PartialViewResult { ViewEngine = viewEngine.Object, ViewName = viewName, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var viewEngineResult = executor.FindView(context, viewResult); // Assert Assert.Equal(viewName, viewEngineResult.ViewName); viewEngine.Verify(); }
public void FindView_UsesViewEngine_FromPartialViewResult() { // Arrange var context = GetActionContext(); var executor = GetViewExecutor(); var viewName = "my-view"; var viewEngine = new Mock<ICompositeViewEngine>(MockBehavior.Strict); viewEngine .Setup(e => e.GetView(/*executingFilePath*/ null, viewName, /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound(viewName, Enumerable.Empty<string>())) .Verifiable(); viewEngine .Setup(e => e.FindView(context, viewName, /*isMainPage*/ false)) .Returns(ViewEngineResult.Found(viewName, Mock.Of<IView>())) .Verifiable(); var viewResult = new PartialViewResult { ViewEngine = viewEngine.Object, ViewName = viewName, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var viewEngineResult = executor.FindView(context, viewResult); // Assert Assert.Equal(viewName, viewEngineResult.ViewName); viewEngine.Verify(); }
/// <summary> /// Attempts to find the <see cref="IView"/> associated with <paramref name="viewResult"/>. /// </summary> /// <param name="actionContext">The <see cref="ActionContext"/> associated with the current request.</param> /// <param name="viewResult">The <see cref="PartialViewResult"/>.</param> /// <returns>A <see cref="ViewEngineResult"/>.</returns> public virtual ViewEngineResult FindView(ActionContext actionContext, PartialViewResult viewResult) { if (actionContext == null) { throw new ArgumentNullException(nameof(actionContext)); } if (viewResult == null) { throw new ArgumentNullException(nameof(viewResult)); } var viewEngine = viewResult.ViewEngine ?? ViewEngine; var viewName = viewResult.ViewName ?? actionContext.ActionDescriptor.Name; var result = viewEngine.FindPartialView(actionContext, viewName); if (result.Success) { DiagnosticSource.ViewFound(actionContext, true, viewResult, viewName, result.View); Logger.LogVerbose("The partial view '{PartialViewName}' was found.", viewName); } else { DiagnosticSource.ViewNotFound(actionContext, true, viewResult, viewName, result.SearchedLocations); Logger.LogError( "The partial view '{PartialViewName}' was not found. Searched locations: {SearchedViewLocations}", viewName, result.SearchedLocations); } return result; }
public async Task ExecuteResultAsync_Throws_IfViewCouldNotBeFound_MessageUsesGetViewLocations() { // Arrange var expected = string.Join( Environment.NewLine, "The view 'MyView' was not found. The following locations were searched:", "Location1", "Location2"); var actionContext = GetActionContext(); var viewEngine = new Mock<IViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, "MyView", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound("MyView", new[] { "Location1", "Location2" })) .Verifiable(); viewEngine .Setup(v => v.FindView(It.IsAny<ActionContext>(), "MyView", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound("MyView", Enumerable.Empty<string>())) .Verifiable(); var viewResult = new PartialViewResult { ViewEngine = viewEngine.Object, ViewName = "MyView", ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act and Assert var ex = await Assert.ThrowsAsync<InvalidOperationException>( () => viewResult.ExecuteResultAsync(actionContext)); Assert.Equal(expected, ex.Message); viewEngine.Verify(); }
public ActionResult View2(string containerId) { PartialViewResult pr = new PartialViewResult(containerId); pr.RenderMode = RenderMode.AddTo; pr.SingleControl = true; pr.WrapByScriptTag = false; return pr; }
public ActionResult View3(string containerId) { PartialViewResult pr = new PartialViewResult(containerId); pr.RenderMode = RenderMode.AddTo; pr.SingleControl = true; pr.WrapByScriptTag = false; pr.ViewData["title"] = DateTime.Now.ToLongTimeString(); pr.ViewData["html"] = DateTime.Now.ToLongTimeString(); return pr; }
public void ModelAs_GivenExpectedValue_ShouldPass() { #if NETCOREAPP1_0 var result = new TestController().PartialViewSimpleModel(); #else ActionResult result = new PartialViewResult { ViewData = new ViewDataDictionary("hello") }; #endif result.Should().BePartialViewResult().ModelAs<string>().Should().Be("hello"); }
public void ModelAs_GivenUnexpectedValue_ShouldFail() { #if NETCOREAPP1_0 var result = new TestController().PartialViewSimpleModel(); #else ActionResult result = new PartialViewResult { ViewData = new ViewDataDictionary("hello") }; #endif Action a = () => result.Should().BePartialViewResult().ModelAs<string>().Should().Be("xyx"); a.ShouldThrow<Exception>(); }
public void FindView_UsesActionDescriptorName_IfViewNameIsNull() { // Arrange var viewName = "some-view-name"; var context = GetActionContext(viewName); var executor = GetViewExecutor(); var viewResult = new PartialViewResult { ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var viewEngineResult = executor.FindView(context, viewResult); // Assert Assert.Equal(viewName, viewEngineResult.ViewName); }
public override void ExecuteResult(ControllerContext context) { if(this.component != null) { context.HttpContext.Response.Write(ComponentLoader.ToConfig(this.component)); } else if (this.components != null) { context.HttpContext.Response.Write(ComponentLoader.ToConfig(this.components)); } else { PartialViewResult result = new PartialViewResult(); result.RenderMode = RenderMode.AddTo; result.Config = true; if (this.viewName.IsNotEmpty()) { result.ViewName = this.viewName; } if (this.model != null) { result.Model = this.model; } if (this.viewData != null) { result.ViewData = this.viewData; } if (this.tempData != null) { result.TempData = this.tempData; } result.ExecuteResult(context); context.HttpContext.Response.Write(result.Output); } }
public static void ViewFound( this DiagnosticSource diagnosticSource, ActionContext actionContext, bool isPartial, PartialViewResult viewResult, string viewName, IView view) { if (diagnosticSource.IsEnabled("Microsoft.AspNet.Mvc.ViewFound")) { diagnosticSource.Write( "Microsoft.AspNet.Mvc.ViewFound", new { actionContext = actionContext, isPartial = isPartial, result = viewResult, viewName = viewName, view = view, }); } }
public static void ViewNotFound( this DiagnosticSource diagnosticSource, ActionContext actionContext, bool isPartial, PartialViewResult viewResult, string viewName, IEnumerable<string> searchedLocations) { if (diagnosticSource.IsEnabled("Microsoft.AspNet.Mvc.ViewNotFound")) { diagnosticSource.Write( "Microsoft.AspNet.Mvc.ViewNotFound", new { actionContext = actionContext, isPartial = isPartial, result = viewResult, viewName = viewName, searchedLocations = searchedLocations, }); } }
public void EditTest() { dept v = new dept(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Index = 13; context.Set <dept>().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(deptVM)); deptVM vm = rv.Model as deptVM; v = new dept(); v.ID = vm.Entity.ID; v.Index = 56; vm.Entity = v; vm.FC = new Dictionary <string, object>(); vm.FC.Add("Entity.Index", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <dept>().FirstOrDefault(); Assert.AreEqual(data.Index, 56); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(ship_popVM)); ship_popVM vm = rv.Model as ship_popVM; ship_pop v = new ship_pop(); v.UserID = AddUser(); v.PopID = AddPop(); v.OrderQty = 38; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <ship_pop>().FirstOrDefault(); Assert.AreEqual(data.OrderQty, 38); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public void Commodity_Create_Sub_Commodity_Get_Test() { IUnitOfWork repository = this.MockCommodityRepository; CommodityController target = new CommodityController(repository); int type = 0; Nullable <int> Parent = 1; //who is the parent commodity ActionResult expected = null; ActionResult actual; actual = target.Create(type, Parent); PartialViewResult result = actual as PartialViewResult; Assert.IsNotNull(result); Assert.AreEqual(result.Model.GetType(), typeof(Commodity)); Assert.IsNotNull(result.ViewBag.CommodityTypeID); //major diff between parent and child Assert.IsNotNull(result.ViewBag.ParentID); Assert.AreEqual(result.ViewBag.isParent, true); Assert.IsNotNull(result.ViewBag.CommodityType); Assert.IsNotNull(result.ViewBag.ParentCommodity); }
public IActionResult MessageLayout(string viewName, string title, string message, string backUrl, string note = "") { TempDataDictionary tempData = new TempDataDictionary(HttpContext, _tempDataProvider); tempData.Add("Title", title); tempData.Add("Message", message); tempData.Add("Note", note); tempData.Add("BaseUrl", BaseUrl); tempData.Add("BackUrl", backUrl); if (string.IsNullOrEmpty(viewName)) { viewName = ControllerContext.ActionDescriptor.DisplayName; } PartialViewResult partialView = new PartialViewResult(); partialView.ViewName = viewName; partialView.TempData = tempData; partialView.ViewData = ViewData; partialView.ViewEngine = _serviceProvider.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine; ActionContext actionContext = new ActionContext(); partialView.ExecuteResult(actionContext); return(partialView); }
public void UpdateTest() { student1.Grad = "Paracin"; student2.Grad = "Cacak"; student3.Grad = "Novi Sad"; student4.Grad = "Subotica"; PartialViewResult result1 = (PartialViewResult)cont.GridViewPartialUpdate(student1); PartialViewResult result2 = (PartialViewResult)cont.GridViewPartialUpdate(student2); PartialViewResult result3 = (PartialViewResult)cont.GridViewPartialUpdate(student3); PartialViewResult result4 = (PartialViewResult)cont.GridViewPartialUpdate(student4); Assert.AreEqual(result1.ViewName, "_GridViewPartial"); Assert.IsNotNull(result1.Model); Assert.AreEqual(result2.ViewName, "_GridViewPartial"); Assert.IsNotNull(result2.Model); Assert.AreEqual(result3.ViewName, "_GridViewPartial"); Assert.IsNotNull(result3.Model); Assert.AreEqual(result4.ViewName, "_GridViewPartial"); Assert.IsNotNull(result4.Model); }
public void EditTest() { NormalEntEvaluationBase v = new NormalEntEvaluationBase(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Status = 31; context.Set <NormalEntEvaluationBase>().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(NormalEntEvaluationBaseVM)); NormalEntEvaluationBaseVM vm = rv.Model as NormalEntEvaluationBaseVM; v = new NormalEntEvaluationBase(); v.ID = vm.Entity.ID; v.Status = 9; vm.Entity = v; vm.FC = new Dictionary <string, object>(); vm.FC.Add("Entity.Status", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <NormalEntEvaluationBase>().FirstOrDefault(); Assert.AreEqual(data.Status, 9); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } }
public async Task SearchBookmarksByKeywords() { HttpContext.Current = new HttpContext( new HttpRequest("", "http://tempuri.org", ""), new HttpResponse(new StringWriter()) ); UnityConfig.RegisterComponents(); System.Web.HttpContext.Current.Items["BusinessLocator"] = new BusinessLocator(UnityConfig.UnityContainer); BookmarkController ctrl = new BookmarkController(); FormCollection fc = new FormCollection(); fc["hf_keywords_selected"] = "journal|gauche"; PartialViewResult vr = await ctrl.SearchBookmarksByKeywords(fc) as PartialViewResult; //on verifie que le nombre de bookmarks retourné est 1 //Assert.IsTrue( (IEnumerable<ViewModelBookmark>)vr.Model).Count() == 1); //on verifie bien qu'il s'agit du journal Liberation Assert.IsTrue(((List <ViewModelBookmark>)vr.Model)[0].Url.Contains("liberation")); }
public void EditTest() { Hospital v = new Hospital(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Name = "lm862zt"; v.LocationId = AddLocation(); context.Set <Hospital>().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(HospitalVM)); HospitalVM vm = rv.Model as HospitalVM; v = new Hospital(); v.ID = vm.Entity.ID; v.Name = "vS52b3xZp"; vm.Entity = v; vm.FC = new Dictionary <string, object>(); vm.FC.Add("Entity.Name", ""); vm.FC.Add("Entity.LocationId", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <Hospital>().FirstOrDefault(); Assert.AreEqual(data.Name, "vS52b3xZp"); } }
public ActionResult OnGetOutletTable() { var outletTableViewModel = new OutletTableViewModel(); outletTableViewModel.Outlets = _pdu.GetOutlets(true, false); outletTableViewModel.WebRootPath = _environment.WebRootPath; outletTableViewModel.OutletConfirmation = _configuration.GetSection("OutletConfirmation").Get <string[]>(); outletTableViewModel.Phases = _pdu.GetPhases(); var viewData = new ViewDataDictionary(new Microsoft.AspNetCore.Mvc.ModelBinding.EmptyModelMetadataProvider(), new Microsoft.AspNetCore.Mvc.ModelBinding.ModelStateDictionary()) { { "OutletTableViewModel", outletTableViewModel } }; viewData.Model = outletTableViewModel; PartialViewResult result = new PartialViewResult() { ViewName = "_OutletTable", ViewData = viewData, }; return(result); }
public static string ToHtml(this PartialViewResult result, HttpContext httpContext) { var feature = httpContext.Features.Get <IRoutingFeature>(); var routeData = feature.RouteData; var viewName = result.ViewName ?? routeData.Values["action"] as string; var actionContext = new ActionContext(httpContext, routeData, new ControllerActionDescriptor()); var options = httpContext.RequestServices.GetRequiredService <IOptions <MvcViewOptions> >(); var htmlHelperOptions = options.Value.HtmlHelperOptions; var viewEngineResult = result.ViewEngine?.FindView(actionContext, viewName, true) ?? options.Value.ViewEngines.Select(x => x.FindView(actionContext, viewName, true)).FirstOrDefault(x => x != null); var view = viewEngineResult.View; var builder = new StringBuilder(); using (var output = new StringWriter(builder)) { var viewContext = new ViewContext(actionContext, view, result.ViewData, result.TempData, output, htmlHelperOptions); view .RenderAsync(viewContext) .GetAwaiter() .GetResult(); } return(builder.ToString()); }
public PartialViewResult OnGetEntities(string dvt, Guid engineId) { EntityView typedEntityView = null; if (Enum.TryParse(typeof(YEntityType), dvt, out var t)) { typedEntityView = EntityViewFactory.GetTypedEntityView((YEntityType)t); } if (typedEntityView == null || typedEntityView.EntityType == YEntityType.None) { return(null); } typedEntityView.EngineId = engineId; typedEntityView.IsNew = true; PartialViewResult partial = Partial(typedEntityView.PartialView, typedEntityView); partial.ViewData.TemplateInfo.HtmlFieldPrefix = nameof(EntityView); return(partial); }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(SchoolVM)); SchoolVM vm = rv.Model as SchoolVM; School v = new School(); v.SchoolCode = "p6k"; v.SchoolName = "ko5Ms"; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <School>().FirstOrDefault(); Assert.AreEqual(data.SchoolCode, "p6k"); Assert.AreEqual(data.SchoolName, "ko5Ms"); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public void AddOrder_ReturnsCorrectPartialViewResult() { // Arrange Mock <IClientOrderProvider> clientOrderProviderMock = new Mock <IClientOrderProvider>(); Mock <IClientOrderHandler> clientOrderHandlerMock = new Mock <IClientOrderHandler>(); Mock <IClientOrderValidator> clientOrderValidatorMock = new Mock <IClientOrderValidator>(); Mock <IUserProvider> userProviderMock = new Mock <IUserProvider>(); Mock <IDeliveryProvider> deliveryProviderMock = new Mock <IDeliveryProvider>(); Mock <IProductProvider> productProviderMock = new Mock <IProductProvider>(); ClientOrderController controller = new ClientOrderController(clientOrderProviderMock.Object, clientOrderHandlerMock.Object, clientOrderValidatorMock.Object, userProviderMock.Object, deliveryProviderMock.Object, productProviderMock.Object ); // Act PartialViewResult result = controller.AddOrder(null) as PartialViewResult; // Assert Assert.IsNotNull(result); Assert.AreEqual("_AddOrderPartial", result.ViewName); }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(DataCheckVM)); DataCheckVM vm = rv.Model as DataCheckVM; DataCheck v = new DataCheck(); v.LeftTableID = AddLeftTable(); v.RightTableID = AddRightTable(); v.ID = 21; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <DataCheck>().FirstOrDefault(); Assert.AreEqual(data.ID, 21); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public void EditTest() { Category v = new Category(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.Name = "ttbc6G"; context.Set <Category>().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(CategoryVM)); CategoryVM vm = rv.Model as CategoryVM; v = new Category(); v.ID = vm.Entity.ID; v.Name = "sEXfPP9s"; vm.Entity = v; vm.FC = new Dictionary <string, object>(); vm.FC.Add("Entity.Name", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <Category>().FirstOrDefault(); Assert.AreEqual(data.Name, "sEXfPP9s"); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } }
public static string RenderToString(this PartialViewResult partialView) { var httpContext = HttpContext.Current; if (httpContext == null) { throw new NotSupportedException("An HTTP context is required to render the partial view to a string"); } var controllerName = httpContext.Request.RequestContext.RouteData.Values["controller"].ToString(); var controller = (ControllerBase)ControllerBuilder.Current.GetControllerFactory().CreateController(httpContext.Request.RequestContext, controllerName); var controllerContext = new ControllerContext(httpContext.Request.RequestContext, controller); var view = ViewEngines.Engines.FindPartialView(controllerContext, partialView.ViewName).View; var sb = new StringBuilder(); using (var sw = new StringWriter(sb)) { using (var tw = new HtmlTextWriter(sw)) { try { view.Render(new ViewContext(controllerContext, view, partialView.ViewData, partialView.TempData, tw), tw); } catch (Exception x) { sb.Append("View Extension Error " + x.Message); } } } return(sb.ToString()); }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(PaintMapEntityVM)); PaintMapEntityVM vm = rv.Model as PaintMapEntityVM; PaintMapEntity v = new PaintMapEntity(); v.Img = "UoG"; v.Sort = 70; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <PaintMapEntity>().FirstOrDefault(); Assert.AreEqual(data.Img, "UoG"); Assert.AreEqual(data.Sort, 70); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(PlayerInfoVM)); PlayerInfoVM vm = rv.Model as PlayerInfoVM; PlayerInfo v = new PlayerInfo(); v.Sex = 58; v.Sect = 21; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <PlayerInfo>().FirstOrDefault(); Assert.AreEqual(data.Sex, 58); Assert.AreEqual(data.Sect, 21); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(PushTasksEntityVM)); PushTasksEntityVM vm = rv.Model as PushTasksEntityVM; PushTasksEntity v = new PushTasksEntity(); v.TaskTitle = "GiICb"; v.TaskBody = "Y9etx"; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <PushTasksEntity>().FirstOrDefault(); Assert.AreEqual(data.TaskTitle, "GiICb"); Assert.AreEqual(data.TaskBody, "Y9etx"); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public override ActionResult Execute(Content currentNode, IDictionary <string, string> macroParams, MacroDefinition macro, ControllerContext currentControllerContext, IRoutableRequestContext routableRequestContext) { //If this partial view is part of a package it will be prefixed with the package (area) name. //if so, then we need to ensure that the view is rendered in the context of the area so the view is found //properly. var macroParts = macro.SelectedItem.Split('-'); var areaName = macroParts.Length > 1 ? macroParts[0] : ""; var model = new PartialViewMacroModel(currentNode, new BendyObject(macroParams)); var partialViewResult = new PartialViewResult() { //if someone has put '-' in the view name, then we need to include those too, we just delimit the area name and view name by the 'first' '-' //ViewName = macroParts.Length > 1 // ? string.Join("", macroParts.Where((x, i) => i != 0)) // : string.Join("", macroParts), ViewName = GetFullViewPath(macro, routableRequestContext), ViewData = new ViewDataDictionary(model), TempData = new TempDataDictionary(), }; var partialViewControllerContext = currentControllerContext; if (!areaName.IsNullOrWhiteSpace()) { //need create a new controller context with the area info var areaRouteData = currentControllerContext.RouteData.Clone(); areaRouteData.DataTokens["area"] = areaName; partialViewControllerContext = new ControllerContext(currentControllerContext.HttpContext, areaRouteData, currentControllerContext.Controller); } //wire up the view object/data partialViewControllerContext.EnsureViewObjectDataOnResult(partialViewResult); return(partialViewResult); }
public void GetLoggedInUsers_LoggedInUsersContainsOldDateTimeForUsersMinus1Second_UserName() { //Arrange mock.Setup(p => p.HttpContext.User.IsInRole("ADM")).Returns(true); DateTime timeBefore = DateTime.Now.ToLocalTimeAzure(); HttpRuntime.Cache["LoggedInUsers"] = new Dictionary <string, DateTime>(); ((HttpRuntime.Cache["LoggedInUsers"]) as Dictionary <string, DateTime>)["briv"] = timeBefore; ((HttpRuntime.Cache["LoggedInUsers"]) as Dictionary <string, DateTime>)["rkni"] = DateTime.Now.ToLocalTimeAzure().AddMinutes(-5).AddSeconds(-1); Thread.Sleep(1); //Act PartialViewResult result = controller.GetLoginUser(); //Assert Assert.IsTrue(HttpRuntime.Cache["LoggedInUsers"] as Dictionary <string, DateTime> != null); Assert.IsTrue((HttpRuntime.Cache["LoggedInUsers"] as Dictionary <string, DateTime>).ContainsKey("briv")); Assert.IsFalse((HttpRuntime.Cache["LoggedInUsers"] as Dictionary <string, DateTime>).ContainsKey("rkni")); Assert.Greater((HttpRuntime.Cache["LoggedInUsers"] as Dictionary <string, DateTime>)["briv"], timeBefore); Assert.AreEqual(typeof(PartialViewResult), result.GetType()); Assert.AreEqual(((PartialViewResult)result).ViewName, "_GetOnlineUsersShort"); Assert.AreEqual(2, result.ViewEngineCollection.Count()); }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(VOS_UserGroupVM)); VOS_UserGroupVM vm = rv.Model as VOS_UserGroupVM; VOS_UserGroup v = new VOS_UserGroup(); v.GroupCode = "J04P"; v.GroupName = "W3dHFX"; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <VOS_UserGroup>().FirstOrDefault(); Assert.AreEqual(data.GroupCode, "J04P"); Assert.AreEqual(data.GroupName, "W3dHFX"); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public async Task CreateContactAccount_WhenCalledWithAccountingNumberForExistingAccounting_ReturnsPartialViewResultWhereModelIsContactAccountViewModelWithBalanceInfosContainingDataForCurrentYear() { Controller sut = CreateSut(); PartialViewResult result = (PartialViewResult)await sut.CreateContactAccount(_fixture.Create <int>()); ContactAccountViewModel contactAccountViewModel = (ContactAccountViewModel)result.Model; short currentYear = (short)DateTime.Today.Year; short currentMonth = (short)DateTime.Today.Month; Assert.That(contactAccountViewModel.BalanceInfos.ContainsKey(currentYear), Is.True); BalanceInfoCollectionViewModel balanceInfoCollectionViewModel = contactAccountViewModel.BalanceInfos[currentYear]; Assert.That(balanceInfoCollectionViewModel, Is.Not.Null); Assert.That(balanceInfoCollectionViewModel.Count, Is.EqualTo(12 - currentMonth + 1)); for (short month = currentMonth; month <= 12; month++) { BalanceInfoViewModel balanceInfoViewModel = balanceInfoCollectionViewModel.Single(m => m.Year == currentYear && m.Month == month); Assert.That(balanceInfoViewModel.EditMode, Is.EqualTo(EditMode.Create)); Assert.That(balanceInfoViewModel.Balance, Is.EqualTo(0M)); } }
public void CreateTest() { PartialViewResult rv = (PartialViewResult)_controller.Create(); Assert.IsInstanceOfType(rv.Model, typeof(StudentVM)); StudentVM vm = rv.Model as StudentVM; Student v = new Student(); v.Name = "Ig1N37FOm"; v.Age = 20; vm.Entity = v; _controller.Create(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <Student>().Find(v.ID); Assert.AreEqual(data.Name, "Ig1N37FOm"); Assert.AreEqual(data.Age, 20); Assert.AreEqual(data.CreateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.CreateTime.Value).Seconds < 10); } }
public static T ModelFromActionResult <T>(this ActionResult actionResult) { // Taken from Stackoverflow object model; if (actionResult.GetType() == typeof(ViewResult)) { ViewResult viewResult = (ViewResult)actionResult; model = viewResult.Model; } else if (actionResult.GetType() == typeof(PartialViewResult)) { PartialViewResult partialViewResult = (PartialViewResult)actionResult; model = partialViewResult.Model; } else { throw new InvalidOperationException(string.Format("Actionresult of type {0} is not supported by ModelFromResult extractor.", actionResult.GetType())); } T typedModel = (T)model; return(typedModel); }
public void OpeningHoursPartial() { //Arrange var openingHours = new OpeningHours() { WorksDays = new List <Days>() { new Days() { Name = "Pon-Czw", WorkHours = "12.00 - 22.00" }, new Days() { Name = "Pt-Sob", WorkHours = "12.00 - 22.00" }, new Days() { Name = "Niedz", WorkHours = "12.00 - 22.00" } } }; var homePresentationService = Substitute.For <IHomePresentationService>(); var xmlManager = Substitute.For <IXmlManager>(); HomeController controller = new HomeController(homePresentationService, xmlManager); //Act xmlManager.GetXmlModel <OpeningHours>("OpeningHours").Returns(openingHours); PartialViewResult result = controller.OpeningHoursPartial() as PartialViewResult; string viewName = result.ViewName; OpeningHours model = result.Model as OpeningHours; //Assert Assert.NotNull(result); Assert.AreEqual("_OpeningHoursPartial", viewName); Assert.NotNull(model); }
public void CommentList_ReturningView_ReturnDefaultViewWithNotNullModel() { int expectedCommentId = 1; ICommentService commentService = Mock.Of <ICommentService>(id => id.GetIndependentComments(It.IsAny <int>()) == new List <CommentViewModel> { new CommentViewModel { Id = expectedCommentId, CreationDate = DateTime.Now.ToString("D") } }); Controller.CommentService = commentService; Mock <IAuthProvider> authProvider = new Mock <IAuthProvider>(); authProvider.Setup(id => id.GetCurrentUser()).Returns("currentuser"); Controller.AuthProvider = authProvider.Object; PartialViewResult result = Controller.CommentList(new CommentViewModel()) as PartialViewResult; var returnedCommentViewModels = (List <CommentViewModel>)result.Model; Assert.AreEqual(expectedCommentId, returnedCommentViewModels[0].Id); Assert.AreEqual("", result.ViewName); }
/// <summary> /// Render View AND Return The HTML Content /// </summary> /// <param name="controller">controller</param> /// <param name="viewName">view name</param> /// <param name="model">model</param> /// <param name="masterName">master name</param> /// <param name="partialView">is partial view</param> /// <returns></returns> public static async Task <string> RenderViewContentAsync(this Controller controller, string viewName, object model, string masterName, bool partialView = false) { controller.ViewData.Model = model; using (var sw = new StringWriter()) { var actionContext = new ActionContext(controller.HttpContext, controller.RouteData, new ActionDescriptor()); if (partialView) { PartialViewResult partialViewResult = new PartialViewResult() { ViewData = controller.ViewData, TempData = controller.TempData, ViewName = viewName }; var partialViewExecutor = controller.HttpContext.RequestServices.GetRequiredService <PartialViewResultExecutor>(); var pView = partialViewExecutor.FindView(actionContext, partialViewResult).View; var pviewContext = new ViewContext(actionContext, pView, partialViewResult.ViewData, partialViewResult.TempData, sw, new HtmlHelperOptions()); await pView.RenderAsync(pviewContext).ConfigureAwait(false); return(sw.GetStringBuilder().ToString()); } ViewResult viewResult = new ViewResult() { ViewData = controller.ViewData, TempData = controller.TempData, ViewName = viewName }; var viewExecutor = controller.HttpContext.RequestServices.GetRequiredService <ViewResultExecutor>(); var view = viewExecutor.FindView(actionContext, viewResult).View; var viewContext = new ViewContext(actionContext, view, viewResult.ViewData, viewResult.TempData, sw, new HtmlHelperOptions()); await view.RenderAsync(viewContext).ConfigureAwait(false); return(sw.GetStringBuilder().ToString()); } }
public void UpdateIspitTest() { ispit1.Ocena = 9; ispit2.Ocena = 7; ispit3.Ocena = 6; ispit4.Ocena = 8; PartialViewResult result1 = (PartialViewResult)cont2.GridViewPartialUpdate(ispit1); PartialViewResult result2 = (PartialViewResult)cont2.GridViewPartialUpdate(ispit2); PartialViewResult result3 = (PartialViewResult)cont2.GridViewPartialUpdate(ispit3); PartialViewResult result4 = (PartialViewResult)cont2.GridViewPartialUpdate(ispit4); Assert.AreEqual(result1.ViewName, "_GridViewPartial"); Assert.IsNotNull(result1.Model); Assert.AreEqual(result2.ViewName, "_GridViewPartial"); Assert.IsNotNull(result2.Model); Assert.AreEqual(result3.ViewName, "_GridViewPartial"); Assert.IsNotNull(result3.Model); Assert.AreEqual(result4.ViewName, "_GridViewPartial"); Assert.IsNotNull(result4.Model); }
public void EditTest() { VOS_Organization v = new VOS_Organization(); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { v.OrganizationName = "poq8AbTBY"; context.Set <VOS_Organization>().Add(v); context.SaveChanges(); } PartialViewResult rv = (PartialViewResult)_controller.Edit(v.ID.ToString()); Assert.IsInstanceOfType(rv.Model, typeof(VOS_OrganizationVM)); VOS_OrganizationVM vm = rv.Model as VOS_OrganizationVM; v = new VOS_Organization(); v.ID = vm.Entity.ID; v.OrganizationName = "Lj7KA"; vm.Entity = v; vm.FC = new Dictionary <string, object>(); vm.FC.Add("Entity.OrganizationName", ""); _controller.Edit(vm); using (var context = new DataContext(_seed, DBTypeEnum.Memory)) { var data = context.Set <VOS_Organization>().FirstOrDefault(); Assert.AreEqual(data.OrganizationName, "Lj7KA"); Assert.AreEqual(data.UpdateBy, "user"); Assert.IsTrue(DateTime.Now.Subtract(data.UpdateTime.Value).Seconds < 10); } }
public async Task ExecuteAsync_UsesStatusCode_FromPartialViewResult() { // Arrange var context = GetActionContext(); var executor = GetViewExecutor(); var contentType = MediaTypeHeaderValue.Parse("application/x-my-content-type"); var viewResult = new PartialViewResult { ViewName = "my-view", StatusCode = 404, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act await executor.ExecuteAsync(context, Mock.Of<IView>(), viewResult); // Assert Assert.Equal(404, context.HttpContext.Response.StatusCode); }
public void FindView_WritesDiagnostic_ViewNotFound() { // Arrange var diagnosticSource = new DiagnosticListener("Test"); var listener = new TestDiagnosticListener(); diagnosticSource.SubscribeWithAdapter(listener); var context = GetActionContext(); var executor = GetViewExecutor(diagnosticSource); var viewName = "myview"; var viewEngine = new Mock<IViewEngine>(MockBehavior.Strict); viewEngine .Setup(e => e.FindPartialView(context, "myview")) .Returns(ViewEngineResult.NotFound("myview", new string[] { "location/myview" })); var viewResult = new PartialViewResult { ViewName = viewName, ViewEngine = viewEngine.Object, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var viewEngineResult = executor.FindView(context, viewResult); // Assert Assert.False(viewEngineResult.Success); Assert.NotNull(listener.ViewNotFound); Assert.NotNull(listener.ViewNotFound.ActionContext); Assert.NotNull(listener.ViewNotFound.Result); Assert.Equal(new string[] { "location/myview" }, listener.ViewNotFound.SearchedLocations); Assert.Equal("myview", listener.ViewNotFound.ViewName); }
public async Task ExecuteAsync_UsesContentType_FromPartialViewResult() { // Arrange var context = GetActionContext(); var executor = GetViewExecutor(); var contentType = MediaTypeHeaderValue.Parse("application/x-my-content-type"); var viewResult = new PartialViewResult { ViewName = "my-view", ContentType = contentType, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act await executor.ExecuteAsync(context, Mock.Of<IView>(), viewResult); // Assert Assert.Equal("application/x-my-content-type; charset=utf-8", context.HttpContext.Response.ContentType); // Check if the original instance provided by the user has not changed. // Since we do not have access to the new instance created within the view executor, // check if at least the content is the same. Assert.Null(contentType.Encoding); }
public void ModelAs_Null_ShouldFail() { ActionResult result = new PartialViewResult(); string failureMessage = FailureMessageHelper.Format(FailureMessages.ViewResultBase_NullModel, typeof(Object).Name); Action a = () => { result.Should().BePartialViewResult().ModelAs<Object>(); }; a.ShouldThrow<Exception>() .WithMessage(failureMessage); }
///// <summary> ///// ///// </summary> ///// <param name="htmlHelper"></param> ///// <param name="partialViewName"></param> ///// <param name="viewData"></param> ///// <param name="model"></param> ///// <param name="tempData"></param> ///// <param name="idMode"></param> ///// <param name="id"></param> ///// <returns></returns> //public static string RenderExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData, object model, TempDataDictionary tempData, IDMode idMode, string id) //{ // if (String.IsNullOrEmpty(partialViewName)) // { // throw new ArgumentException("Value cannot be null or empty.", "partialViewName"); // } // return new PartialViewRenderer().Render(htmlHelper.ViewContext, partialViewName, viewData, model, tempData, idMode, id); //} /// <summary> /// Renders the partial view with the parent's view data /// </summary> /// <param name="htmlHelper"></param> /// <param name="partialViewName"></param> /// <param name="viewData"></param> /// <param name="model"></param> /// <param name="tempData"></param> /// <param name="idMode"></param> /// <param name="controlId"></param> /// <param name="containerId"></param> /// <param name="index"></param> /// <param name="ns"></param> /// <param name="mode"></param> /// <param name="wrapByScriptTag"></param> /// <param name="singleControl"></param> /// <param name="items"></param> /// <param name="controlToRender"></param> /// <param name="containerConfig"></param> /// <returns></returns> public static IHtmlString ExtPartial(this HtmlHelper htmlHelper, string partialViewName, ViewDataDictionary viewData = null, object model = null, TempDataDictionary tempData = null, IDMode idMode = IDMode.Static, string controlId = null, string containerId = null, int index = 0, string ns = null, RenderMode mode = RenderMode.RenderTo, bool wrapByScriptTag = true, bool singleControl = false, bool items = false, string controlToRender = null, Container.Config containerConfig = null) { if (String.IsNullOrEmpty(partialViewName)) { throw new ArgumentException("Value cannot be null or empty.", "partialViewName"); } string divId = null; if (containerId.IsEmpty() && mode == RenderMode.RenderTo) { containerId = BaseControl.GenerateID(); divId = containerId; } PartialViewResult result = new PartialViewResult(); result.WriteToString = true; result.ViewName = partialViewName; result.ViewData = viewData ?? htmlHelper.ViewData; if (model != null) { result.ViewData.Model = model; } if (tempData != null) { result.TempData = tempData; } result.IDMode = idMode; result.ControlId = controlId; result.ContainerId = containerId; result.Index = index; result.Namespace = ns; result.RenderMode = mode; result.WrapByScriptTag = wrapByScriptTag; result.SingleControl = singleControl; result.Items = items; result.ControlToRender = controlToRender; result.ContainerConfig = containerConfig; result.ExecuteResult(htmlHelper.ViewContext); if (divId != null) { return new HtmlString(string.Format("<div id=\"{0}\"></div>{1}", divId, result.Output)); } return new HtmlString(result.Output); }
public void FindView_ReturnsExpectedNotFoundResult_WithGetViewLocations() { // Arrange var expectedLocations = new[] { "location1", "location2" }; var context = GetActionContext(); var executor = GetViewExecutor(); var viewName = "myview"; var viewEngine = new Mock<IViewEngine>(MockBehavior.Strict); viewEngine .Setup(e => e.GetView(/*executingFilePath*/ null, "myview", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound("myview", expectedLocations)) .Verifiable(); viewEngine .Setup(e => e.FindView(context, "myview", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound("myview", Enumerable.Empty<string>())); var viewResult = new PartialViewResult { ViewName = viewName, ViewEngine = viewEngine.Object, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var result = executor.FindView(context, viewResult); // Assert Assert.False(result.Success); Assert.Null(result.View); Assert.Equal(expectedLocations, result.SearchedLocations); }
/// <summary> /// Executes the <see cref="IView"/> asynchronously. /// </summary> /// <param name="actionContext">The <see cref="ActionContext"/> associated with the current request.</param> /// <param name="view">The <see cref="IView"/>.</param> /// <param name="viewResult">The <see cref="PartialViewResult"/>.</param> /// <returns>A <see cref="Task"/> which will complete when view execution is completed.</returns> public virtual Task ExecuteAsync(ActionContext actionContext, IView view, PartialViewResult viewResult) { if (actionContext == null) { throw new ArgumentNullException(nameof(actionContext)); } if (view == null) { throw new ArgumentNullException(nameof(view)); } if (viewResult == null) { throw new ArgumentNullException(nameof(viewResult)); } Logger.PartialViewResultExecuting(view); return ExecuteAsync( actionContext, view, viewResult.ViewData, viewResult.TempData, viewResult.ContentType, viewResult.StatusCode); }
public void BePartialView_GivenPartial_ShouldPass() { ActionResult result = new PartialViewResult(); result.Should().BePartialViewResult(); }
public ActionResult View1(string containerId) { PartialViewResult pr = new PartialViewResult(containerId); return pr; }
public async Task ExecuteResultAsync_FindsAndExecutesView() { // Arrange var viewName = "myview"; var context = GetActionContext(); var view = new Mock<IView>(MockBehavior.Strict); view .Setup(v => v.RenderAsync(It.IsAny<ViewContext>())) .Returns(Task.FromResult(0)) .Verifiable(); view .As<IDisposable>() .Setup(v => v.Dispose()) .Verifiable(); // Used by logging view .SetupGet(v => v.Path) .Returns("myview.cshtml"); var viewEngine = new Mock<IViewEngine>(MockBehavior.Strict); viewEngine .Setup(v => v.GetView(/*executingFilePath*/ null, "myview", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound("myview", Enumerable.Empty<string>())) .Verifiable(); viewEngine .Setup(v => v.FindView(It.IsAny<ActionContext>(), "myview", /*isMainPage*/ false)) .Returns(ViewEngineResult.Found("myview", view.Object)) .Verifiable(); var viewResult = new PartialViewResult { ViewName = viewName, ViewEngine = viewEngine.Object, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act await viewResult.ExecuteResultAsync(context); // Assert view.Verify(); viewEngine.Verify(); }
public void FindView_WritesDiagnostic_ViewFound() { // Arrange var diagnosticSource = new DiagnosticListener("Test"); var listener = new TestDiagnosticListener(); diagnosticSource.SubscribeWithAdapter(listener); var context = GetActionContext(); var executor = GetViewExecutor(diagnosticSource); var viewName = "myview"; var viewResult = new PartialViewResult { ViewName = viewName, ViewData = new ViewDataDictionary(new EmptyModelMetadataProvider()), TempData = Mock.Of<ITempDataDictionary>(), }; // Act var viewEngineResult = executor.FindView(context, viewResult); // Assert Assert.Equal(viewName, viewEngineResult.ViewName); Assert.NotNull(listener.ViewFound); Assert.NotNull(listener.ViewFound.ActionContext); Assert.NotNull(listener.ViewFound.Result); Assert.NotNull(listener.ViewFound.View); Assert.True(listener.ViewFound.IsPartial); Assert.Equal("myview", listener.ViewFound.ViewName); }
/// <summary> /// Attempts to find the <see cref="IView"/> associated with <paramref name="viewResult"/>. /// </summary> /// <param name="actionContext">The <see cref="ActionContext"/> associated with the current request.</param> /// <param name="viewResult">The <see cref="PartialViewResult"/>.</param> /// <returns>A <see cref="ViewEngineResult"/>.</returns> public virtual ViewEngineResult FindView(ActionContext actionContext, PartialViewResult viewResult) { if (actionContext == null) { throw new ArgumentNullException(nameof(actionContext)); } if (viewResult == null) { throw new ArgumentNullException(nameof(viewResult)); } var viewEngine = viewResult.ViewEngine ?? ViewEngine; var viewName = viewResult.ViewName ?? actionContext.ActionDescriptor.Name; var result = viewEngine.GetView(executingFilePath: null, viewPath: viewName, isMainPage: false); var originalResult = result; if (!result.Success) { result = viewEngine.FindView(actionContext, viewName, isMainPage: false); } if (!result.Success) { if (originalResult.SearchedLocations.Any()) { if (result.SearchedLocations.Any()) { // Return a new ViewEngineResult listing all searched locations. var locations = new List<string>(originalResult.SearchedLocations); locations.AddRange(result.SearchedLocations); result = ViewEngineResult.NotFound(viewName, locations); } else { // GetView() searched locations but FindView() did not. Use first ViewEngineResult. result = originalResult; } } } if (result.Success) { DiagnosticSource.ViewFound( actionContext, isMainPage: false, viewResult: viewResult, viewName: viewName, view: result.View); Logger.PartialViewFound(viewName); } else { DiagnosticSource.ViewNotFound( actionContext, isMainPage: false, viewResult: viewResult, viewName: viewName, searchedLocations: result.SearchedLocations); Logger.PartialViewNotFound(viewName, result.SearchedLocations); } return result; }