Esempio n. 1
0
        /// <see href="https://github.com/Kentico/delivery-sdk-net/issues/126"/>
        public void GetContentItemModelRetrievingContentModelWithUnknownTypeReturnNull()
        {
            var item        = JToken.FromObject(rt4);
            var linkedItems = JToken.FromObject(linkedItemsForItemWithTwoReferencedContentItems);

            var fakeDeliverClient     = A.Fake <IDeliveryClient>();
            var codeFirstTypeProvider = A.Fake <ICodeFirstTypeProvider>();

            A.CallTo(() => codeFirstTypeProvider.GetType("newType")).Returns(null);
            var modelProvider = new CodeFirstModelProvider(fakeDeliverClient);

            modelProvider.TypeProvider = codeFirstTypeProvider;

            Assert.Null(modelProvider.GetContentItemModel <object>(item, linkedItems));
        }
        // 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 fakeDeliverClient     = A.Fake <IDeliveryClient>();
            var codeFirstTypeProvider = A.Fake <ICodeFirstTypeProvider>();

            A.CallTo(() => codeFirstTypeProvider.GetType(A <string> ._)).Returns(typeof(ContentItemWithSingleRTE));

            var processor = new InlineContentItemsProcessor(null, null);

            processor.RegisterTypeResolver(new RichTextInlineResolver());
            var retriever = new CodeFirstModelProvider(fakeDeliverClient);

            retriever.TypeProvider = codeFirstTypeProvider;
            A.CallTo(() => fakeDeliverClient.InlineContentItemsProcessor).Returns(processor);

            var item           = JToken.FromObject(rt3);
            var modularContent = JToken.FromObject(modularContentForItemReferencingItself);

            var result = retriever.GetContentItemModel <ContentItemWithSingleRTE>(item, modularContent);

            Assert.Equal("<span>RT</span><span>RT</span>", result.RT);
            Assert.IsType <ContentItemWithSingleRTE>(result);
        }
Esempio n. 3
0
        // During processing of inline content items, item which detects circular dependency ( A refs B, B refs A ) should resolve resolved item
        // as if there were no inline content items, which will prevent circular dependency
        public void RetrievingContentModelWithCircularDependencyDoesNotCycle()
        {
            var fakeDeliverClient     = A.Fake <IDeliveryClient>();
            var codeFirstTypeProvider = A.Fake <ICodeFirstTypeProvider>();

            A.CallTo(() => codeFirstTypeProvider.GetType(A <string> ._)).Returns(typeof(ContentItemWithSingleRTE));

            var processor = new InlineContentItemsProcessor(null, null);

            processor.RegisterTypeResolver(new RichTextInlineResolver());
            var retriever = new CodeFirstModelProvider(fakeDeliverClient);

            retriever.TypeProvider = codeFirstTypeProvider;
            A.CallTo(() => fakeDeliverClient.InlineContentItemsProcessor).Returns(processor);

            var item        = JToken.FromObject(rt1);
            var linkedItems = JToken.FromObject(linkedItemsForItemWithTwoReferencedContentItems);

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

            Assert.Equal("<span>FirstRT</span><span>SecondRT</span><span>FirstRT</span>", result.RT);
            Assert.IsType <ContentItemWithSingleRTE>(result);
        }