Beispiel #1
0
        private static void CheckQuery(string text, int count, string security = null)
        {
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();

            var result = broker.Query(text, security);

            Assert.IsNotNull(result);
            Assert.AreEqual(count, result.Count());
        }
Beispiel #2
0
        public void Check_Group()
        {
            var facetQueryDefinition = new FacetQueryDefinition();

            facetQueryDefinition.Facets.Add(new BooleanFacet {
                Name = GenreFacet, FieldName = GenreField
            });

            var input = new AdvancedQueryInput {
                ApiInput = new QueryInput {
                    Criteria = new Criteria(),
                    Skip     = 0,
                    Top      = 10,
                    Group    = GenreFacet
                },
                FacetQueryDefinition = facetQueryDefinition
            };
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();
            var output = broker.AdvancedQuery(input);

            /* Total. */
            Assert.AreEqual(6, output.TotalCount, "Nombre total de résultats attendu incorrect.");

            /* Groupes */
            var groups = output.Groups;

            Assert.IsNotNull(groups);
            Assert.AreEqual(3, groups.Count, "Nombre de groupes attendu incorrect.");

            foreach (var group in groups)
            {
                var bucket = group.Value;
                switch (group.Key)
                {
                case "M":
                    Assert.AreEqual(3, bucket.Count);
                    break;

                case "F":
                    Assert.AreEqual(2, bucket.Count);
                    break;

                case FacetConst.NullValue:
                    Assert.AreEqual(1, bucket.Count);
                    break;

                default:
                    Assert.Fail("Clée inattendue : " + group.Key);
                    break;
                }
            }
        }
Beispiel #3
0
        private static QueryOutput <PersonneDocument> CheckFacets(FacetListInput facetsInput, string query = null)
        {
            var facetQueryDefinition = new FacetQueryDefinition(new BooleanFacet {
                Name      = GenreFacet,
                FieldName = GenreField
            });
            var input = new AdvancedQueryInput {
                ApiInput = new QueryInput {
                    Criteria = new Criteria {
                        Query = query
                    },
                    Skip   = 0,
                    Top    = 10,
                    Facets = facetsInput,
                },
                FacetQueryDefinition = facetQueryDefinition
            };
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();

            return(broker.AdvancedQuery(input));
        }
Beispiel #4
0
        private static void CheckFacets(long expected, FacetListInput facetsInput, string query = null)
        {
            var facetQueryDefinition = new FacetQueryDefinition(new BooleanFacet {
                Code      = GenreFacet,
                FieldName = GenreField
            });
            var input = new AdvancedQueryInput {
                ApiInput = new QueryInput {
                    Criteria = new Criteria {
                        Query = query
                    },
                    Skip   = 0,
                    Top    = 10,
                    Facets = facetsInput,
                },
                FacetQueryDefinition = facetQueryDefinition
            };
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();
            var actual = broker.AdvancedCount(input);

            Assert.AreEqual(expected, actual, "Le compte n'est pas bon.");
        }
Beispiel #5
0
        private static QueryOutput <PersonneDocument> CheckFacets(FacetListInput facetsInput, string query = null, string security = null, string portfolio = null)
        {
            var facetQueryDefinition = new FacetQueryDefinition(new PortfolioFacet {
                Code      = DepartementFacet,
                FieldName = DepartementField
            });
            var input = new AdvancedQueryInput {
                ApiInput = new QueryInput {
                    Criteria = new Criteria {
                        Query = query
                    },
                    Skip   = 0,
                    Top    = 10,
                    Facets = facetsInput,
                },
                FacetQueryDefinition = facetQueryDefinition,
                Security             = security,
                Portfolio            = portfolio
            };
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();

            return(broker.AdvancedQuery(input));
        }
Beispiel #6
0
        private static void Check_Sort(bool sortDescending, IEnumerable <string> expectedNomList)
        {
            var input = new AdvancedQueryInput {
                ApiInput = new QueryInput {
                    Criteria       = new Criteria(),
                    Skip           = 0,
                    Top            = 10,
                    SortFieldName  = "NomSort",
                    SortDescending = sortDescending
                }
            };
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();
            var output = broker.AdvancedQuery(input);

            /* Total. */
            Assert.AreEqual(6, output.List.Count, "Nombre de résultats attendu incorrect.");
            Assert.AreEqual(6, output.TotalCount, "Nombre total de résultats attendu incorrect.");

            var nomList = output.List.Select(x => x.Nom);

            Assert.IsTrue(
                Enumerable.SequenceEqual(expectedNomList, nomList),
                "Tri attendu : " + string.Join(",", expectedNomList) + Environment.NewLine + " | Tri constaté : " + string.Join(",", nomList));
        }
Beispiel #7
0
        public static void Init(TestContext context)
        {
            /* Initialise le store Elastic. */
            SearchBrokerManager.RegisterDefaultDataSource(DataSourceName);
            SearchBrokerManager.Instance.RegisterStore(DataSourceName, typeof(ElasticStore <>));
            ElasticManager.Instance.RegisterSearchSettings(new SearchSettings {
                Name      = DataSourceName,
                NodeUri   = NodeUri,
                IndexName = IndexName
            });

            /* Créé l'index. */
            if (ElasticManager.Instance.ExistIndex(DataSourceName))
            {
                ElasticManager.Instance.DeleteIndex(DataSourceName);
            }

            ElasticManager.Instance.InitIndex(DataSourceName, new IndexConfigurator());

            /* Créé le type de document. */
            var broker = SearchBrokerManager.GetBroker <PersonneDocument>();

            broker.CreateDocumentType();

            /* Ajoute des documents. */
            var doc1 = new PersonneDocument {
                Id              = 7,
                Nom             = "TOUTLEMONDE",
                NomSort         = "TOUTLEMONDE",
                Prenom          = "Robert",
                Text            = "Robert TOUTLEMONDE",
                DepartementList = "92 75",
                Genre           = "M"
            };

            var doc2 = new PersonneDocument {
                Id              = 8,
                Nom             = "MARCHAND",
                NomSort         = "MARCHAND",
                Prenom          = "Camille",
                Text            = "Camille MARCHAND",
                DepartementList = "01 02",
                Genre           = "F"
            };

            var doc3 = new PersonneDocument {
                Id              = 9,
                Nom             = "RODRIGEZ",
                NomSort         = "RODRIGEZ",
                Prenom          = "Clémentine",
                Text            = "Clémentine RODRIGEZ",
                DepartementList = "03 04",
                Genre           = "F"
            };

            var doc4 = new PersonneDocument {
                Id              = 10,
                Nom             = "BUCHE",
                NomSort         = "BUCHE",
                Prenom          = "Géraldine",
                Text            = "Géraldine BUCHE",
                DepartementList = "99 98",
                Genre           = null
            };

            var doc5 = new PersonneDocument {
                Id              = 11,
                Nom             = "RAY",
                NomSort         = "RAY",
                Prenom          = "Jean-Baptiste",
                Text            = "Jean-Baptiste RAY",
                DepartementList = "92 75",
                Genre           = "M"
            };

            var doc6 = new PersonneDocument {
                Id              = 12,
                Nom             = "D'ALEMBERT",
                NomSort         = "D'ALEMBERT",
                Prenom          = "Roger",
                Text            = "Roger D'ALEMBERT",
                DepartementList = "92 75",
                Genre           = "M"
            };

            broker.Put(doc1);
            broker.Put(doc2);
            broker.Put(doc3);
            broker.Put(doc4);
            broker.Put(doc5);
            broker.Put(doc6);

            /* Attends que les documents soit disponibles. */
            Thread.Sleep(1000);
        }