Beispiel #1
0
        public void Query_Apply_Random_Facet_Then_Re_Query()
        {
            var lookQuery = new LookQuery(TestHelper.GetSearchingContext());

            lookQuery.TagQuery         = new TagQuery();
            lookQuery.TagQuery.HasAll  = new LookTag[] { _red };
            lookQuery.TagQuery.FacetOn = new TagFacetQuery(_colour);

            // first query
            var lookResult = lookQuery.Search();

            Assert.IsNotNull(lookResult);
            Assert.IsTrue(lookResult.Success);
            Assert.IsTrue(lookResult.TotalItemCount == 7);
            Assert.IsTrue(lookResult.Facets.Length == 7);

            // pick a random facet
            var random = new Random();
            var facet  = lookResult
                         .Facets
                         .OrderBy(x => random.Next())
                         .First();

            // get the expected count
            var facetCount = facet.Count;

            // apply facet to query
            lookQuery.ApplyFacet(facet);

            // second query
            lookResult = lookQuery.Search();

            Assert.IsNotNull(lookResult);
            Assert.IsTrue(lookResult.Success);
            Assert.AreEqual(facetCount, lookResult.TotalItemCount);
        }