public void ExecuteTemplatePrefersExistingActionCacheItem() { using (MockViewEngine engine = new MockViewEngine()) { // Arrange HtmlHelper html = MakeHtmlHelper(new ExecuteTemplateModel { MyProperty = "Hello" }); ModelMetadata metadata = ModelMetadata.FromStringExpression("MyProperty", html.ViewData); engine.Engine.Expect(e => e.FindPartialView(It.IsAny <ControllerContext>(), It.IsAny <string>(), It.IsAny <bool>())) .Never(); ViewDataDictionary viewData = MakeViewData(html, metadata); TemplateHelpers.GetActionCache(html).Add("EditorTemplates/String", new TemplateHelpers.ActionCacheCodeItem { Action = _ => "Action Text" }); // Act string result = TemplateHelpers.ExecuteTemplate(html, viewData, "templateName", DataBoundControlMode.Edit, delegate { return(new[] { "String" }); }); // Assert engine.Engine.Verify(); Assert.AreEqual("Action Text", result); } }
public void ExecuteTemplateUsesViewFromViewEngineInEditMode() { using (MockViewEngine engine = new MockViewEngine()) { // Arrange HtmlHelper html = MakeHtmlHelper(new ExecuteTemplateModel { MyProperty = "Hello" }); ModelMetadata metadata = ModelMetadata.FromStringExpression("MyProperty", html.ViewData); ViewContext callbackViewContext = null; engine.Engine.Expect(e => e.FindPartialView(html.ViewContext, "EditorTemplates/String", true)) .Returns(new ViewEngineResult(engine.View.Object, engine.Engine.Object)) .Verifiable(); engine.View.Expect(v => v.Render(It.IsAny <ViewContext>(), It.IsAny <TextWriter>())) .Callback <ViewContext, TextWriter>((vc, tw) => { callbackViewContext = vc; tw.Write("View Text"); }) .Verifiable(); ViewDataDictionary viewData = MakeViewData(html, metadata); // Act string result = TemplateHelpers.ExecuteTemplate(html, viewData, "templateName", DataBoundControlMode.Edit, delegate { return(new[] { "String" }); }); // Assert engine.Engine.Verify(); engine.View.Verify(); Assert.AreEqual("View Text", result); Assert.AreSame(engine.View.Object, callbackViewContext.View); Assert.AreSame(viewData, callbackViewContext.ViewData); Assert.AreSame(html.ViewContext.TempData, callbackViewContext.TempData); TemplateHelpers.ActionCacheViewItem cacheItem = TemplateHelpers.GetActionCache(html)["EditorTemplates/String"] as TemplateHelpers.ActionCacheViewItem; Assert.IsNotNull(cacheItem); Assert.AreEqual("EditorTemplates/String", cacheItem.ViewName); } }
public void ExecuteTemplateUsesViewFromDefaultActionsInEditMode() { using (MockViewEngine engine = new MockViewEngine()) { // Arrange HtmlHelper html = MakeHtmlHelper(new ExecuteTemplateModel { MyProperty = "Hello" }); ModelMetadata metadata = ModelMetadata.FromStringExpression("MyProperty", html.ViewData); engine.Engine.Expect(e => e.FindPartialView(html.ViewContext, "EditorTemplates/String", It.IsAny <bool>())) .Returns(new ViewEngineResult(new string[0])) .Verifiable(); ViewDataDictionary viewData = MakeViewData(html, metadata); // Act TemplateHelpers.ExecuteTemplate(html, viewData, "templateName", DataBoundControlMode.Edit, delegate { return(new[] { "String" }); }); // Assert engine.Engine.Verify(); TemplateHelpers.ActionCacheCodeItem cacheItem = TemplateHelpers.GetActionCache(html)["EditorTemplates/String"] as TemplateHelpers.ActionCacheCodeItem; Assert.IsNotNull(cacheItem); Assert.AreEqual(DefaultEditorTemplates.StringTemplate, cacheItem.Action); } }
public GridDisplayForCellBuilderTests() { viewEngine = new MockViewEngine(); customer = new Customer(); }