Beispiel #1
0
        public void CorrectDirectTemplatesForRenderingContext()
        {
            using (ShimsContext.Create())
            {
                // Rendering Item
                var scRenderingTemplateType = typeof(IScRenderingParametersTemplate);
                var renderingTemplateAttribute = (TemplateMappingAttribute)scRenderingTemplateType.GetCustomAttributes(typeof(TemplateMappingAttribute), false).First();
                var renderingTemplateId = renderingTemplateAttribute.Id;

                Field parametersTemplateField = new ShimField()
                {
                    NameGet = () => "Parameters Template",
                    ValueGet = () => renderingTemplateId.ToString(),
                };

                var testRenderingItem = CreateTestItem(fields: CreateTestFields(new List<Field>() { parametersTemplateField }));

                // Context Item

                var scBaseTemplateType = typeof(IScTemplate);
                var templateAttribute = (TemplateMappingAttribute)scBaseTemplateType.GetCustomAttributes(typeof(TemplateMappingAttribute), false).First();
                var templateId = templateAttribute.Id;
                var testItem = CreateTestItem(templateId: templateId);

                Template templateItem = new ShimTemplate()
                {
                    DescendsFromID = id => true,
                };
                ShimTemplateManager.GetTemplateItem = id =>
                {
                    return templateItem;
                };

                var contextProvider = new Mock<IContextProvider>();

                contextProvider.Setup(c => c.PageContextItem).Returns(testItem);
                contextProvider.Setup(c => c.RenderingContextItem).Returns(testItem);
                contextProvider.Setup(c => c.RenderingItem).Returns(testRenderingItem);
                contextProvider.Setup(c => c.RenderingParameters).Returns(new Dictionary<string, string>());

                var itemFactory = new ItemFactory(contextProvider.Object);
                var renderingModel = itemFactory.GetRenderingContextItems<IScTemplate, IScTemplate, IScRenderingParametersTemplate>();

                Assert.IsNotNull(renderingModel.PageItem);
                Assert.IsNotNull(renderingModel.RenderingItem);
                Assert.IsNotNull(renderingModel.RenderingParametersItem);
            }
        }