Exemple #1
0
        public void GetContentItemModelRetrievingContentModelWithUnknownTypeReturnNull()
        {
            var item        = JToken.FromObject(Rt4);
            var linkedItems = JToken.FromObject(LinkedItemsForItemWithTwoReferencedContentItems);

            var contentLinkUrlResolver      = A.Fake <IContentLinkUrlResolver>();
            var inlineContentItemsProcessor = A.Fake <IInlineContentItemsProcessor>();
            var typeProvider   = A.Fake <ITypeProvider>();
            var propertyMapper = A.Fake <IPropertyMapper>();

            A.CallTo(() => typeProvider.GetType("newType")).Returns(null);
            var modelProvider = new ModelProvider(new ContentLinkResolver(contentLinkUrlResolver), inlineContentItemsProcessor, typeProvider, propertyMapper);

            Assert.Null(modelProvider.GetContentItemModel <object>(item, linkedItems));
        }
Exemple #2
0
        // In case item is referencing itself ( A refs A ) we'd like to go through second processing as if there were no inline content items,
        // this is same as in other cases, because as soon as we start processing item which is already being processed we remove inline content items.
        public void RetrievingContentModelWithItemInlineReferencingItselfDoesNotCycle()
        {
            var typeProvider           = A.Fake <ITypeProvider>();
            var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>();
            var propertyMapper         = A.Fake <IPropertyMapper>();

            A.CallTo(() => typeProvider.GetType(A <string> ._)).Returns(typeof(ContentItemWithSingleRte));
            A.CallTo(() => propertyMapper.IsMatch(A <PropertyInfo> ._, A <string> ._, A <string> ._)).Returns(true);

            var processor = InlineContentItemsProcessorFactory
                            .WithResolver(ResolveItemWithSingleRte)
                            .Build();
            var retriever = new ModelProvider(new ContentLinkResolver(contentLinkUrlResolver), processor, typeProvider, propertyMapper);

            var item        = JToken.FromObject(Rt3);
            var linkedItems = JToken.FromObject(LinkedItemsForItemReferencingItself);

            var result = retriever.GetContentItemModel <ContentItemWithSingleRte>(item, linkedItems);

            Assert.Equal("<span>RT</span><span>RT</span>", result.Rt);
            Assert.IsType <ContentItemWithSingleRte>(result);
        }
Exemple #3
0
        public void RetrievingNonExistentContentModelCreatesWarningInRichtext()
        {
            var typeProvider           = A.Fake <ITypeProvider>();
            var contentLinkUrlResolver = A.Fake <IContentLinkUrlResolver>();
            var propertyMapper         = A.Fake <IPropertyMapper>();

            A.CallTo(() => typeProvider.GetType(A <string> ._)).Returns(null);
            A.CallTo(() => propertyMapper.IsMatch(A <PropertyInfo> ._, A <string> ._, A <string> ._)).Returns(true);

            var processor = InlineContentItemsProcessorFactory
                            .WithResolver(factory => factory.ResolveTo <UnknownContentItem>(unknownItem => $"Content type '{unknownItem.Type}' has no corresponding model."))
                            .Build();
            var retriever = new ModelProvider(new ContentLinkResolver(contentLinkUrlResolver), processor, typeProvider, propertyMapper);

            var item           = JToken.FromObject(Rt5);
            var linkedItems    = JToken.FromObject(LinkedItemWithNoModel);
            var expectedResult =
                $"<span>RT</span>Content type '{linkedItems.SelectToken("linkedItemWithNoModel.system.type")}' has no corresponding model.";

            var result = retriever.GetContentItemModel <ContentItemWithSingleRte>(item, linkedItems);

            Assert.Equal(expectedResult, result.Rt);
            Assert.IsType <ContentItemWithSingleRte>(result);
        }