コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
            }
        }
コード例 #4
0
 public GridDisplayForCellBuilderTests()
 {
     viewEngine = new MockViewEngine();
     customer   = new Customer();
 }