Exemplo n.º 1
0
        public void ContainsAnyThrowsIfAccessed()
        {
            var set = new[] { 1, 2, 3 };
            var ex  = Assert.Throws <InvalidOperationException>(() => ElasticMethods.ContainsAny(set, set));

            Assert.Contains("ElasticMethods.ContainsAny", ex.Message);
        }
Exemplo n.º 2
0
        public void QueryAndWhereGeneratesQueryAndFilterCriteria()
        {
            var query = Robots.Query(r => ElasticMethods.Regexp(r.Name, "r.*bot")).Where(r => r.Zone.HasValue);

            var searchRequest = ElasticQueryTranslator.Translate(Mapping, "prefix", query.Expression).SearchRequest;

            Assert.IsType <RegexpCriteria>(searchRequest.Query);
            Assert.IsType <ExistsCriteria>(searchRequest.Filter);
        }
        public void PrefixElasticMethodCreatesPrefixWhereCriteria()
        {
            var where = Robots.Where(r => ElasticMethods.Prefix(r.Name, "robot"));
            var criteria = ElasticQueryTranslator.Translate(Mapping, "prefix", where.Expression).SearchRequest.Filter;

            Assert.IsType <PrefixCriteria>(criteria);
            var regexpCriteria = (PrefixCriteria)criteria;

            Assert.Equal("prefix", regexpCriteria.Name);
            Assert.Equal("prefix.name", regexpCriteria.Field);
            Assert.Equal("robot", regexpCriteria.Prefix);
        }
        public static void ContainsAll_ListFirst_CreatesTermsQuery()
        {
            var matchNames = new[] { "Robbie", "Kryten", "IG-88", "Marvin" };

            var where = Robots.Where(r => ElasticMethods.ContainsAll(matchNames, r.Aliases));
            var criteria = ElasticQueryTranslator.Translate(Mapping, "prefix", where.Expression).SearchRequest.Filter;

            var termsCriteria = Assert.IsType <TermsCriteria>(criteria);

            Assert.Equal("prefix.aliases", termsCriteria.Field);
            Assert.Contains("Robbie", termsCriteria.Values);
            Assert.Contains("Kryten", termsCriteria.Values);
            Assert.Contains("IG-88", termsCriteria.Values);
            Assert.Contains("Marvin", termsCriteria.Values);
            Assert.Equal(TermsExecutionMode.and, termsCriteria.ExecutionMode);
        }
Exemplo n.º 5
0
        public void WhereElasticMethodsSelectAverageCreatesValidQuery()
        {
            var query = Robots
                        .Where(r => ElasticMethods.Prefix(r.Name, "abc"))
                        .GroupBy(r => r.Zone).Select(g => g.Average(r => r.EnergyUse));

            var translation = ElasticQueryTranslator.Translate(Mapping, "p", query.Expression);

            var prefixFilter = Assert.IsType <PrefixCriteria>(translation.SearchRequest.Filter);

            Assert.Equal("abc", prefixFilter.Prefix);
            Assert.Equal("p.name", prefixFilter.Field);

            Assert.Equal(typeof(double), Assert.IsType <ListTermFacetsElasticMaterializer>(translation.Materializer).ElementType);
            Assert.Equal("count", translation.SearchRequest.SearchType);
            Assert.Equal(1, translation.SearchRequest.Facets.Count);

            var facet = Assert.IsType <TermsStatsFacet>(translation.SearchRequest.Facets[0]);

            Assert.Null(facet.Filter);
            Assert.Equal("p.zone", facet.Key);
            Assert.Equal("p.energyUse", facet.Value);
        }
Exemplo n.º 6
0
        public static void PrefixMustBeBetweenMemberAndConstant()
        {
            const string expectedMessageFragment = "Prefix must take a member";

            {
                var ex = Assert.Throws <NotSupportedException>(() => Translate(Robots.Where(r => ElasticMethods.Prefix(r.Name, r.Name))));
                Assert.Contains(expectedMessageFragment, ex.Message);
            }

            {
                var ex = Assert.Throws <NotSupportedException>(() => Translate(Robots.Where(r => ElasticMethods.Prefix("", r.Name))));
                Assert.Contains(expectedMessageFragment, ex.Message);
            }

            {
                var ex = Assert.Throws <NotSupportedException>(() => Translate(Robots.Where(r => ElasticMethods.Prefix("", ""))));
                Assert.Contains(expectedMessageFragment, ex.Message);
            }
        }
Exemplo n.º 7
0
 [ExcludeFromCodeCoverage] // Expression isn't "executed"
 public void RegexpThrowsIfAccessed()
 {
     Assert.Throws <InvalidOperationException>(() => ElasticMethods.Regexp("a", "b"));
 }
Exemplo n.º 8
0
 [ExcludeFromCodeCoverage] // Expression isn't "executed"
 public void PrefixThrowsIfAccessed()
 {
     Assert.Throws <InvalidOperationException>(() => ElasticMethods.Prefix("a", "b"));
 }
Exemplo n.º 9
0
        public void RegexpThrowsIfAccessed()
        {
            var ex = Assert.Throws <InvalidOperationException>(() => ElasticMethods.Regexp("a", "b"));

            Assert.Contains("ElasticMethods.Regexp", ex.Message);
        }
Exemplo n.º 10
0
        public void PrefixArrayThrowsIfAccessed()
        {
            var ex = Assert.Throws <InvalidOperationException>(() => ElasticMethods.Prefix(new[] { "a1", "a2" }, "b"));

            Assert.Contains("ElasticMethods.Prefix", ex.Message);
        }