From 89a9a3af7703dc75b88b9d96be86844d7296e77f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Simonas=20=C5=A0erlinskas?= <simonas.serlinskas@nfq.com>
Date: Wed, 5 Aug 2015 12:13:36 +0300
Subject: [PATCH] added endpoint builder getters tests

---
 src/SearchEndpoint/HighlightEndpoint.php        | 14 ++++++++++++++
 src/SearchEndpoint/QueryEndpoint.php            |  8 ++++++++
 .../SearchEndpoint/AggregationsEndpointTest.php | 17 +++++++++++++----
 tests/SearchEndpoint/FilterEndpointTest.php     | 13 ++++++++++++-
 tests/SearchEndpoint/HighlightEndpointTest.php  | 15 ++++++++++++++-
 tests/SearchEndpoint/PostFilterEndpointTest.php | 14 +++++++++++++-
 tests/SearchEndpoint/QueryEndpointTest.php      | 15 ++++++++++++---
 tests/SearchEndpoint/SortEndpointTest.php       | 13 ++++++++++++-
 8 files changed, 98 insertions(+), 11 deletions(-)

diff --git a/src/SearchEndpoint/HighlightEndpoint.php b/src/SearchEndpoint/HighlightEndpoint.php
index c0d16a5..ba4ff9c 100644
--- a/src/SearchEndpoint/HighlightEndpoint.php
+++ b/src/SearchEndpoint/HighlightEndpoint.php
@@ -29,6 +29,11 @@ class HighlightEndpoint extends AbstractSearchEndpoint
      */
     private $highlight;
 
+    /**
+     * @var string Key for highlight storing.
+     */
+    private $key;
+
     /**
      * {@inheritdoc}
      */
@@ -50,6 +55,15 @@ class HighlightEndpoint extends AbstractSearchEndpoint
             throw new \OverflowException('Only one highlight can be set');
         }
 
+        $this->key = $key;
         $this->highlight = $builder;
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAll($boolType = null)
+    {
+        return [$this->key => $this->highlight];
+    }
 }
diff --git a/src/SearchEndpoint/QueryEndpoint.php b/src/SearchEndpoint/QueryEndpoint.php
index 1c4c83e..89f5ec9 100644
--- a/src/SearchEndpoint/QueryEndpoint.php
+++ b/src/SearchEndpoint/QueryEndpoint.php
@@ -104,4 +104,12 @@ class QueryEndpoint extends AbstractSearchEndpoint implements OrderedNormalizerI
     {
         return new BoolQuery();
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getAll($boolType = null)
+    {
+        return $this->bool->getQueries($boolType);
+    }
 }
diff --git a/tests/SearchEndpoint/AggregationsEndpointTest.php b/tests/SearchEndpoint/AggregationsEndpointTest.php
index 1a3f599..510421b 100644
--- a/tests/SearchEndpoint/AggregationsEndpointTest.php
+++ b/tests/SearchEndpoint/AggregationsEndpointTest.php
@@ -11,11 +11,8 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
-use ONGR\ElasticsearchDSL\NamedBuilderInterface;
+use ONGR\ElasticsearchDSL\Aggregation\MissingAggregation;
 use ONGR\ElasticsearchDSL\SearchEndpoint\AggregationsEndpoint;
-use PHPUnit_Framework_MockObject_MockObject as MockObject;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
 
 /**
  * Class AggregationsEndpointTest.
@@ -32,4 +29,16 @@ class AggregationsEndpointTest extends \PHPUnit_Framework_TestCase
             new AggregationsEndpoint()
         );
     }
+
+    public function testEndpointGetter()
+    {
+        $aggName = 'acme_agg';
+        $agg = new MissingAggregation('acme');
+        $endpoint = new AggregationsEndpoint();
+        $endpoint->add($agg, $aggName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($agg, $builders[$aggName]);
+    }
 }
diff --git a/tests/SearchEndpoint/FilterEndpointTest.php b/tests/SearchEndpoint/FilterEndpointTest.php
index b8b46a8..69d2921 100644
--- a/tests/SearchEndpoint/FilterEndpointTest.php
+++ b/tests/SearchEndpoint/FilterEndpointTest.php
@@ -11,7 +11,6 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
 use ONGR\ElasticsearchDSL\Filter\MatchAllFilter;
 use ONGR\ElasticsearchDSL\Query\FilteredQuery;
 use ONGR\ElasticsearchDSL\SearchEndpoint\FilterEndpoint;
@@ -67,4 +66,16 @@ class FilterEndpointTest extends \PHPUnit_Framework_TestCase
         $this->assertInstanceOf('ONGR\ElasticsearchDSL\Query\FilteredQuery', $reference);
         $this->assertSame($matchAllFilter, $reference->getFilter());
     }
+
+    public function testEndpointGetter()
+    {
+        $filterName = 'acme_filter';
+        $filter = new MatchAllFilter();
+        $endpoint = new FilterEndpoint();
+        $endpoint->add($filter, $filterName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($filter, $builders[$filterName]);
+    }
 }
diff --git a/tests/SearchEndpoint/HighlightEndpointTest.php b/tests/SearchEndpoint/HighlightEndpointTest.php
index 496e14d..85200ae 100644
--- a/tests/SearchEndpoint/HighlightEndpointTest.php
+++ b/tests/SearchEndpoint/HighlightEndpointTest.php
@@ -11,7 +11,6 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
 use ONGR\ElasticsearchDSL\Highlight\Highlight;
 use ONGR\ElasticsearchDSL\SearchEndpoint\HighlightEndpoint;
 use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
@@ -52,4 +51,18 @@ class HighlightEndpointTest extends \PHPUnit_Framework_TestCase
             json_encode($instance->normalize($normalizerInterface))
         );
     }
+
+    public function testEndpointGetter()
+    {
+        $highlightName = 'acme_highlight';
+        $highlight = new Highlight();
+        $highlight->addField('acme');
+
+        $endpoint = new HighlightEndpoint();
+        $endpoint->add($highlight, $highlightName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($highlight, $builders[$highlightName]);
+    }
 }
diff --git a/tests/SearchEndpoint/PostFilterEndpointTest.php b/tests/SearchEndpoint/PostFilterEndpointTest.php
index 4808c5f..3490ba7 100644
--- a/tests/SearchEndpoint/PostFilterEndpointTest.php
+++ b/tests/SearchEndpoint/PostFilterEndpointTest.php
@@ -11,7 +11,6 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
 use ONGR\ElasticsearchDSL\Filter\MatchAllFilter;
 use ONGR\ElasticsearchDSL\SearchEndpoint\PostFilterEndpoint;
 use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
@@ -59,4 +58,17 @@ class PostFilterEndpointTest extends \PHPUnit_Framework_TestCase
             json_encode($instance->normalize($normalizerInterface))
         );
     }
+
+    public function testEndpointGetter()
+    {
+        $filterName = 'acme_post_filter';
+        $filter = new MatchAllFilter();
+
+        $endpoint = new PostFilterEndpoint();
+        $endpoint->add($filter, $filterName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($filter, $builders[$filterName]);
+    }
 }
diff --git a/tests/SearchEndpoint/QueryEndpointTest.php b/tests/SearchEndpoint/QueryEndpointTest.php
index 759efb7..0a17c70 100644
--- a/tests/SearchEndpoint/QueryEndpointTest.php
+++ b/tests/SearchEndpoint/QueryEndpointTest.php
@@ -11,9 +11,6 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
-use ONGR\ElasticsearchDSL\Query\BoolQuery;
-use ONGR\ElasticsearchDSL\Query\FilteredQuery;
 use ONGR\ElasticsearchDSL\Query\MatchAllQuery;
 use ONGR\ElasticsearchDSL\SearchEndpoint\QueryEndpoint;
 use PHPUnit_Framework_MockObject_MockObject as MockObject;
@@ -62,4 +59,16 @@ class QueryEndpointTest extends \PHPUnit_Framework_TestCase
             $instance->normalize($normalizerInterface)
         );
     }
+
+    public function testEndpointGetter()
+    {
+        $queryName = 'acme_query';
+        $query = new MatchAllQuery();
+        $endpoint = new QueryEndpoint();
+        $endpoint->add($query, $queryName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($query, $builders[$queryName]);
+    }
 }
diff --git a/tests/SearchEndpoint/SortEndpointTest.php b/tests/SearchEndpoint/SortEndpointTest.php
index f3079cd..c347583 100644
--- a/tests/SearchEndpoint/SortEndpointTest.php
+++ b/tests/SearchEndpoint/SortEndpointTest.php
@@ -11,7 +11,6 @@
 
 namespace ONGR\ElasticsearchDSL\Tests\Unit\SearchEndpoint;
 
-use ONGR\ElasticsearchDSL\BuilderInterface;
 use ONGR\ElasticsearchDSL\SearchEndpoint\SortEndpoint;
 use ONGR\ElasticsearchDSL\Sort\FieldSort;
 use PHPUnit_Framework_MockObject_MockObject as MockObject;
@@ -50,4 +49,16 @@ class SortEndpointTest extends \PHPUnit_Framework_TestCase
             $instance->normalize($normalizerInterface)
         );
     }
+
+    public function testEndpointGetter()
+    {
+        $sortName = 'acme_sort';
+        $sort = new FieldSort('acme');
+        $endpoint = new SortEndpoint();
+        $endpoint->add($sort, $sortName);
+        $builders = $endpoint->getAll();
+
+        $this->assertCount(1, $builders);
+        $this->assertSame($sort, $builders[$sortName]);
+    }
 }
-- 
GitLab