diff --git a/tests/Unit/Paginator/HybridPaginatorAdapterTest.php b/tests/Unit/Paginator/HybridPaginatorAdapterTest.php new file mode 100644 index 000000000..f3a0d5adf --- /dev/null +++ b/tests/Unit/Paginator/HybridPaginatorAdapterTest.php @@ -0,0 +1,49 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\ElasticaBundle\Tests\Unit\Event; + +use FOS\ElasticaBundle\Paginator\HybridPaginatorAdapter; +use Elastica\Query; +use Elastica\SearchableInterface; +use FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface; +use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper; + +class HybridPaginatorAdapterTest extends UnitTestHelper +{ + protected function mockHybridPaginatorAdapter($args) + { + $mock = $this + ->getMockBuilder(HybridPaginatorAdapter::class) + ->setConstructorArgs($args) + ->setMethods(['getElasticaResults']) + ->getMock(); + + $resultSet = $this->mockResultSet(); + + $mock + ->expects($this->exactly(1)) + ->method('getElasticaResults') + ->willReturn($resultSet); + + return $mock; + } + + public function testGetResults() + { + $searchable = $this->mockSearchable(); + $query = new Query(); + $transformer = $this->mockElasticaToModelTransformer(); + + $adapter = $this->mockHybridPaginatorAdapter([$searchable, $query, $transformer]); + $adapter->getResults(0, 0); + } +} diff --git a/tests/Unit/Paginator/HybridPartialResultsTest.php b/tests/Unit/Paginator/HybridPartialResultsTest.php new file mode 100644 index 000000000..7a525c36b --- /dev/null +++ b/tests/Unit/Paginator/HybridPartialResultsTest.php @@ -0,0 +1,45 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\ElasticaBundle\Tests\Unit\Event; + +use FOS\ElasticaBundle\Paginator\HybridPartialResults; +use Elastica\ResultSet; +use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper; + +class HybridPartialResultsTest extends UnitTestHelper +{ + protected function mockResultSet() + { + $mock = $this + ->getMockBuilder(ResultSet::class) + ->disableOriginalConstructor() + ->getMock(); + + $mock + ->expects($this->exactly(1)) + ->method('getResults') + ->willReturn([]); + + return $mock; + } + + public function testToArray() + { + $transformer = $this->mockElasticaToModelTransformer(); + + $resultSet = $this->mockResultSet(); + + $results = new HybridPartialResults($resultSet, $transformer); + + $results->toArray(); + } +} diff --git a/tests/Unit/Paginator/RawPaginatorAdapterTest.php b/tests/Unit/Paginator/RawPaginatorAdapterTest.php index 13e3e2893..ac0a6836d 100644 --- a/tests/Unit/Paginator/RawPaginatorAdapterTest.php +++ b/tests/Unit/Paginator/RawPaginatorAdapterTest.php @@ -16,11 +16,11 @@ use Elastica\ResultSet; use Elastica\SearchableInterface; use InvalidArgumentException; -use PHPUnit\Framework\TestCase; +use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper; -class RawPaginatorAdapterTest extends TestCase +class RawPaginatorAdapterTest extends UnitTestHelper { - private function mockResultSet() + protected function mockResultSet() { $methods = ['getTotalHits', 'getAggregations', 'getSuggests', 'getMaxScore']; $mock = $this @@ -31,14 +31,6 @@ private function mockResultSet() return $mock; } - private function mockSearchable() - { - $mock = $this - ->getMockBuilder(SearchableInterface::class) - ->getMock(); - return $mock; - } - private function createAdapterWithSearch($methodName, $value) { $resultSet = $this->mockResultSet(); diff --git a/tests/Unit/UnitTestHelper.php b/tests/Unit/UnitTestHelper.php index 0519a9d6a..c73c7a04f 100644 --- a/tests/Unit/UnitTestHelper.php +++ b/tests/Unit/UnitTestHelper.php @@ -11,6 +11,9 @@ namespace FOS\ElasticaBundle\Tests\Unit; +use FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface; +use Elastica\SearchableInterface; +use Elastica\ResultSet; use PHPUnit\Framework\TestCase; class UnitTestHelper extends TestCase @@ -29,4 +32,29 @@ protected function getProtectedProperty($object, string $property) return $reflectionProperty->getValue($object); } + + protected function mockElasticaToModelTransformer() + { + $mock = $this + ->getMockBuilder(ElasticaToModelTransformerInterface::class) + ->getMock(); + return $mock; + } + + protected function mockSearchable() + { + $mock = $this + ->getMockBuilder(SearchableInterface::class) + ->getMock(); + return $mock; + } + + protected function mockResultSet() + { + $mock = $this + ->getMockBuilder(ResultSet::class) + ->disableOriginalConstructor() + ->getMock(); + return $mock; + } }