コード例 #1
0
        public void Items_IndexHaveNonexistentItems_ReturnsExistentItems([Content] DbItem[] contentItems, DbItem brokenItem,
                                                                         List <DbItem> indexedItems, ISearchIndex index, string indexName,
                                                                         [Frozen] SearchProvider searchProvider, Switcher <SearchProvider> searchProviderSwitcher,
                                                                         [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            indexedItems.AddRange(contentItems);
            indexedItems.Add(brokenItem);
            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            var results = GetResults(indexedItems);

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items.ToArray();


            //assert
            items.Count().Should().Be(contentItems.Length);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #2
0
        public void Items_StandardValuesExistsInContentTree_IgnoresStandartValueByName(Db db, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var id     = ID.NewID;
            var dbItem = new DbItem(Sitecore.Constants.StandardValuesItemName, id);

            db.Add(dbItem);

            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>().Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            var results = GetResults(new List <DbItem>
            {
                dbItem
            });

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items.ToArray();


            //assert
            items.Count().Should().Be(0);
        }
コード例 #3
0
        public void Items_ItemTemplateSet_FiltersByTemplateId(Db db, [Content] DbTemplate templateItem, [Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, string indexName, [Content] Item renderingItem)
        {
            //arrange
            var dbItem = new DbItem("templated", ID.NewID, templateItem.ID);

            db.Add(dbItem);
            var dbItems = contentItems.ToList();

            dbItems.Add(dbItem);
            var results = GetResults(dbItems);

            InitIndexes(index, searchProvider, results);


            var renderingModel = new QueryableDatasourceRenderingModel()
            {
                Rendering = new Rendering()
                {
                    DataSource = "notEmpty"
                }
            };

            renderingModel.DatasourceTemplate = db.GetItem(templateItem.ID);

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(1);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #4
0
        public void Items_StandardValuesExists_IgnoresItemsUnderTemplates(Db db, ISearchIndex index,
                                                                          [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var templateID = ID.NewID;

            db.Add(new DbTemplate("Sample", templateID));
            var stdValues = db.GetItem("/sitecore/templates/Sample").Add(Sitecore.Constants.StandardValuesItemName, new TemplateID(templateID));

            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            var results = GetResults(new List <DbItem>
            {
                new DbItem(Sitecore.Constants.StandardValuesItemName, stdValues.ID)
            });

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items.ToArray();


            //assert
            items.Count().Should().Be(0);
        }
コード例 #5
0
        public void Initialize_TemplateResolved_DatasourceTemplateShouldBeSet([Content] DbTemplate templateItem, [Content] Item renderingItem,
                                                                              [Greedy] QueryableDatasourceRenderingModel renderingModel)
        {
            //arrange
            renderingItem = renderingItem.Database.GetItem(templateItem.ID);
            renderingModel.CorePipeline
            .When(cp => cp.Run("getRenderingDatasource", Arg.Is <GetRenderingDatasourceArgs>(a => a.RenderingItem == renderingItem)))
            .Do(ci => ci.Arg <GetRenderingDatasourceArgs>().Prototype = renderingItem);

            var rendering = new Rendering
            {
                DataSource    = "ds",
                RenderingItem = new RenderingItem(renderingItem)
            };

            ContextService.Get().Push(new PageContext());
            PageContext.Current.Item = renderingItem;

            //act
            renderingModel.Initialize(rendering);

            //assert
            renderingModel.DatasourceTemplate.Should().NotBeNull();
            renderingModel.DatasourceTemplate.ID.Should().Be(templateItem.ID);
        }
コード例 #6
0
        public void Items_IndexHaveNonexistentItems_ReturnsExistentItems([Content] DbItem[] contentItems, DbItem brokenItem, List <DbItem> indexedItems, ISearchIndex index, string indexName, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem)
        {
            //arrange
            indexedItems.AddRange(contentItems);
            indexedItems.Add(brokenItem);

            var results = GetResults(indexedItems);

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel()
            {
                Rendering = new Rendering()
                {
                    DataSource = "notEmpty"
                }
            };

            //act
            var items = renderingModel.Items.ToArray();


            //assert
            items.Count().Should().Be(contentItems.Length);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #7
0
        public void Items_ItemTemplateSet_FiltersByTemplateId(Db db, [Content] DbTemplate templateItem, [Content] DbItem[] contentItems, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher <SearchProvider> searchProviderSwitcher, string indexName, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var dbItem = new DbItem("templated", ID.NewID, templateItem.ID);

            db.Add(dbItem);
            var dbItems = contentItems.ToList();

            dbItems.Add(dbItem);
            var results = GetResults(dbItems);

            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            InitIndexes(index, searchProvider, results);


            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                Rendering          = new Rendering(),
                DatasourceString   = "notEmpty",
                DatasourceTemplate = db.GetItem(templateItem.ID)
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(1);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #8
0
        public void Items_NotLatestItemVersionExists_ReturnsOnlyLatestItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var results = GetResults(contentItems).ToArray();

            results.First().IsLatestVersion = false;
            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            InitIndexes(index, searchProvider, results.AsQueryable());
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(contentItems.Length - 1);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #9
0
        public void Items_DifferentItemLanguageExists_ReturnsOnlyContextLanguage([Content] DbItem[] contentItems, ISearchIndex index, [Frozen] SearchProvider searchProvider, Switcher <SearchProvider> searchProviderSwitcher, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var results = GetResults(contentItems).ToArray();

            results.First().Language = "noncontext";
            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            InitIndexes(index, searchProvider, results.AsQueryable());
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(contentItems.Length - 1);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #10
0
        public void SutInstantiatesCustomCorePipelineWrapper(
            IRenderingPropertiesRepository renderingRepository,
            ICorePipeline corePipeline)
        {
            var sut = new QueryableDatasourceRenderingModel(renderingRepository, corePipeline);

            sut.CorePipeline.Should().BeSameAs(corePipeline);
        }
コード例 #11
0
        public void Items_EmptyDatasource_ReturnsEmptyCollection([ResolvePipeline("getRenderingDatasource")] EmptyPipeline processor, List <DbItem> indexedItems, SearchProvider searchProvider, ISearchIndex index, string indexName, [Content] Item renderingItem)
        {
            //arrange

            InitIndexes(index, searchProvider, new List <SearchResultItem>().AsQueryable());
            var renderingModel = new QueryableDatasourceRenderingModel();

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(0);
            index.CreateSearchContext().DidNotReceiveWithAnyArgs();
        }
コード例 #12
0
        public void DatasourceString_EmptyDatasource_ContextItemAsLocationRoot([Content] Item renderingItem,
                                                                               [Greedy] QueryableDatasourceRenderingModel renderingModel)
        {
            //arrange
            ContextService.Get().Push(new PageContext());
            PageContext.Current.Item = renderingItem;

            //act
            renderingModel.Initialize(new Rendering
            {
                DataSource    = string.Empty,
                RenderingItem = new RenderingItem(renderingItem)
            });

            //assert
            renderingModel.DatasourceString.Should().Be("+location:" + PageContext.Current.Item.ID);
        }
コード例 #13
0
        public void DatasourceString_EmptyDatasource_ContextItemAsLocationRoot([ResolvePipeline("getRenderingDatasource")] EmptyPipeline processor, [Content] Item renderingItem)
        {
            //arrange
            ContextService.Get().Push(new PageContext());
            PageContext.Current.Item = renderingItem;
            var renderingModel = new QueryableDatasourceRenderingModel();

            //act
            renderingModel.Initialize(new Rendering
            {
                DataSource    = string.Empty,
                RenderingItem = new RenderingItem(renderingItem)
            });

            //assert
            renderingModel.DatasourceString.Should().Be("+location:" + PageContext.Current.Item.ID);
        }
コード例 #14
0
        public void DatasourceString_IdAsDatasource_IDSetAsLocationRoot([Content] Item renderingItem,
                                                                        [Greedy] QueryableDatasourceRenderingModel renderingModel)
        {
            //arrange
            ContextService.Get().Push(new PageContext());
            PageContext.Current.Item = renderingItem;
            var dataSource = ID.NewID.ToString();

            //act
            renderingModel.Initialize(new Rendering
            {
                DataSource    = dataSource,
                RenderingItem = new RenderingItem(renderingItem)
            });

            //assert
            renderingModel.DatasourceString.Should().Be("+location:" + dataSource);
        }
コード例 #15
0
        public void Items_IndexMatchDb_ReturnsAllItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem)
        {
            //arrange
            var results = GetResults(contentItems);

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel()
            {
                Rendering = new Rendering()
                {
                    DataSource = "notEmpty"
                }
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(contentItems.Length);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #16
0
        public void Initialize_TemplateResolved_DatasourceTemplateShouldBeSet([Content] DbTemplate templateItem, [ResolvePipeline("getRenderingDatasource")] FakeDatasourceResolverPipeline processor, [Content] Item renderingItem)
        {
            //arrange
            processor.Item = renderingItem.Database.GetItem(templateItem.ID);
            var rendering = new Rendering
            {
                DataSource    = "ds",
                RenderingItem = new RenderingItem(renderingItem)
            };

            ContextService.Get().Push(new PageContext());
            PageContext.Current.Item = renderingItem;
            var renderingModel = new QueryableDatasourceRenderingModel();

            //act
            renderingModel.Initialize(rendering);


            //assert
            renderingModel.DatasourceTemplate.Should().NotBeNull();
            renderingModel.DatasourceTemplate.ID.Should().Be(templateItem.ID);
        }
コード例 #17
0
        public void Items_IndexEmpty_ReturnsEmptyCollection([ResolvePipeline("getRenderingDatasource")] EmptyPipeline processor, List <DbItem> indexedItems, ISearchIndex index, string indexName, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            InitIndexes(index, searchProvider, new List <SearchResultItem>().AsQueryable());
            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(0);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #18
0
        public void Items_DifferentItemLanguageExists_ReturnsOnlyContextLanguage([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem)
        {
            //arrange
            var results = GetResults(contentItems).ToArray();

            results.First().Language = "noncontext";

            InitIndexes(index, searchProvider, results.AsQueryable());
            var renderingModel = new QueryableDatasourceRenderingModel()
            {
                Rendering = new Rendering()
                {
                    DataSource = "notEmpty"
                }
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(contentItems.Length - 1);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #19
0
        public void Items_IndexMatchDb_ReturnsAllItems([Content] DbItem[] contentItems, ISearchIndex index, [ReplaceSearchProvider] SearchProvider searchProvider, [Content] Item renderingItem, IRenderingPropertiesRepository renderingPropertiesRepository)
        {
            //arrange
            var results = GetResults(contentItems);

            renderingPropertiesRepository.Get <QueryableDatasourceRenderingSettings>()
            .Returns(new QueryableDatasourceRenderingSettings
            {
                SearchResultsLimit = 10
            });

            InitIndexes(index, searchProvider, results);
            var renderingModel = new QueryableDatasourceRenderingModel(renderingPropertiesRepository)
            {
                DatasourceString = "notEmpty"
            };

            //act
            var items = renderingModel.Items;

            //assert
            items.Count().Should().Be(contentItems.Length);
            index.CreateSearchContext().ReceivedWithAnyArgs(1);
        }
コード例 #20
0
        public void SutInstantiatesDefaultCorePipelineWrapper()
        {
            var sut = new QueryableDatasourceRenderingModel();

            sut.CorePipeline.Should().BeOfType <CorePipelineWrapper>();
        }