public void ContainsAnyThrowsIfAccessed() { var set = new[] { 1, 2, 3 }; var ex = Assert.Throws <InvalidOperationException>(() => ElasticMethods.ContainsAny(set, set)); Assert.Contains("ElasticMethods.ContainsAny", ex.Message); }
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); }
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); }
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); } }
[ExcludeFromCodeCoverage] // Expression isn't "executed" public void RegexpThrowsIfAccessed() { Assert.Throws <InvalidOperationException>(() => ElasticMethods.Regexp("a", "b")); }
[ExcludeFromCodeCoverage] // Expression isn't "executed" public void PrefixThrowsIfAccessed() { Assert.Throws <InvalidOperationException>(() => ElasticMethods.Prefix("a", "b")); }
public void RegexpThrowsIfAccessed() { var ex = Assert.Throws <InvalidOperationException>(() => ElasticMethods.Regexp("a", "b")); Assert.Contains("ElasticMethods.Regexp", ex.Message); }
public void PrefixArrayThrowsIfAccessed() { var ex = Assert.Throws <InvalidOperationException>(() => ElasticMethods.Prefix(new[] { "a1", "a2" }, "b")); Assert.Contains("ElasticMethods.Prefix", ex.Message); }