Beispiel #1
0
        public void AdvancedQuery_ReturnsOnlyMatchingRecordsWhenFilterSpecified_Equal()
        {
            var c = TestUtil.Client;

            const string valToMatch = "Eddie";
            var          filter     = new DefaultFilterField(DefaultComparator.Equal, valToMatch, "customer_first_name");

            var conn = new DefaultConnection(c);

            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                null,
                null,
                new[] { filter });
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            var all = results.Documents.All(x => x.CustomerFirstName == valToMatch);

            Assert.NotEmpty(results.Documents);
            Assert.True(all);
        }
Beispiel #2
0
        public void AdvancedQuery_CriteriaWorksCorrectly_Skip()
        {
            var c = TestUtil.Client;

            var conn = new DefaultConnection(c);

            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                skip: 0);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);
            var criteria2 = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                skip: 1);
            var query2 = new AdvancedQuery <SampleResult>(
                criteria2,
                conn);

            var results  = query.Execute();
            var results2 = query2.Execute();

            var r  = results.Documents.ElementAt(1) as SampleResult;
            var r2 = results2.Documents.ElementAt(0) as SampleResult;

            Assert.Equal(r.OrderId, r2.OrderId);
        }
Beispiel #3
0
        public void AdvancedQuery_ReturnsOnlyMatchingRecordsWhenFilterSpecified_AnyWord()
        {
            var c = TestUtil.Client;

            const string valToMatch = "Basic";
            var          filter     = new DefaultFilterField(DefaultComparator.AnyWord, valToMatch, "products.product_name");

            var conn = new DefaultConnection(c);

            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                null,
                null,
                new[] { filter });
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            var all = results.Documents.All(
                x => x.Products.Any(
                    z => z.ProductName.Contains(valToMatch, StringComparison.OrdinalIgnoreCase)));

            Assert.NotEmpty(results.Documents);
            Assert.True(all);
        }
Beispiel #4
0
        public async void AdvancedQuery_CanExecuteAsync()
        {
            var c = TestUtil.Client;

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = await query.ExecuteAsync();

            Assert.True(results != null);
        }
Beispiel #5
0
        public void AdvancedQuery_CanExecute()
        {
            var c = TestUtil.Client;

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            Assert.True(results != null);
            Assert.NotEmpty(results.Documents);
        }
Beispiel #6
0
        public void AdvancedQuery_ReturnsNoBucketsWhenNoFieldsSpecified()
        {
            var c = TestUtil.Client;

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            Assert.True(results != null);
            Assert.NotEmpty(results.Documents);
            Assert.Empty((results as AdvancedQueryResults <SampleResult>)?.Buckets);
        }
Beispiel #7
0
        public void AdvancedQuery_CriteriaWorksCorrectly_Take()
        {
            var c = TestUtil.Client;

            const int _take = 25;

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                take: _take);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            Assert.Equal(25, results.Documents.Count());
        }
Beispiel #8
0
        public void AdvancedQuery_ReturnsNoFieldsWhenEmptySpecified()
        {
            var c = TestUtil.Client;

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            var hasValues = TestUtil.DoAllTheseFieldsHaveValues(
                results.Documents.FirstOrDefault(),
                TestUtil.GetObjectFields(results.Documents.FirstOrDefault()).ToArray());

            Assert.True(hasValues);
        }
Beispiel #9
0
        public void AdvancedQuery_ReturnsBucketsForSpecifiedFields()
        {
            var c = TestUtil.Client;

            var b = new[] { new DefaultBucketField("manufacturer.keyword") };

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                bucketFields: b);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            Assert.True(results != null);
            Assert.NotEmpty(results.Documents);
            Assert.NotEmpty((results as AdvancedQueryResults <SampleResult>)?.Buckets);
        }
Beispiel #10
0
        public void AdvancedQuery_ReturnsAllRecordsWhenNoFilterSpecified()
        {
            var c = TestUtil.Client;

            const int expectedTotal = 4675;

            var conn = new DefaultConnection(c);

            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                null,
                null,
                null);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            Assert.Equal(expectedTotal, results.Total);
        }
Beispiel #11
0
        public void AdvancedQuery_CriteriaWorksCorrectly_Sort()
        {
            var c = TestUtil.Client;

            var sort = new[] { new DefaultSortField("order_id", true, 0) };

            var conn = new DefaultConnection(c);

            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                sort);
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            var actualFirst   = results.Documents.FirstOrDefault() as SampleResult;
            var intendedFirst = results.Documents.OrderBy(x => (x as SampleResult)?.OrderId).FirstOrDefault() as SampleResult;

            Assert.Equal(actualFirst.OrderId, intendedFirst.OrderId);
        }
Beispiel #12
0
        public void AdvancedQuery_ReturnsOnlySpecifiedFields()
        {
            var c = TestUtil.Client;

            const string fieldToUse = "customer_full_name";//nameof(SampleResult.CustomerFullName);//

            var conn     = new DefaultConnection(c);
            var criteria = new AdvancedQueryCriteria <SampleResult>(
                TestUtil.SampleIndices,
                returnFields: new[] { new DefaultReturnField(fieldToUse) });
            var query = new AdvancedQuery <SampleResult>(
                criteria,
                conn);

            var results = query.Execute();

            var hasValues = TestUtil.DoOnlyTheseFieldsHaveValues(
                results.Documents.FirstOrDefault(),
                nameof(SampleResult.CustomerFullName));

            Assert.True(hasValues);
        }