Skip to content

Commit 61ff1f9

Browse files
authored
Merge pull request #1494 from Labstep/testing/improve-paginator-coverage
Improve testing coverage for src/Paginator/
2 parents 6a01018 + 03bf188 commit 61ff1f9

File tree

4 files changed

+125
-11
lines changed

4 files changed

+125
-11
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the FOSElasticaBundle package.
5+
*
6+
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace FOS\ElasticaBundle\Tests\Unit\Event;
13+
14+
use FOS\ElasticaBundle\Paginator\HybridPaginatorAdapter;
15+
use Elastica\Query;
16+
use Elastica\SearchableInterface;
17+
use FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface;
18+
use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper;
19+
20+
class HybridPaginatorAdapterTest extends UnitTestHelper
21+
{
22+
protected function mockHybridPaginatorAdapter($args)
23+
{
24+
$mock = $this
25+
->getMockBuilder(HybridPaginatorAdapter::class)
26+
->setConstructorArgs($args)
27+
->setMethods(['getElasticaResults'])
28+
->getMock();
29+
30+
$resultSet = $this->mockResultSet();
31+
32+
$mock
33+
->expects($this->exactly(1))
34+
->method('getElasticaResults')
35+
->willReturn($resultSet);
36+
37+
return $mock;
38+
}
39+
40+
public function testGetResults()
41+
{
42+
$searchable = $this->mockSearchable();
43+
$query = new Query();
44+
$transformer = $this->mockElasticaToModelTransformer();
45+
46+
$adapter = $this->mockHybridPaginatorAdapter([$searchable, $query, $transformer]);
47+
$adapter->getResults(0, 0);
48+
}
49+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
3+
/*
4+
* This file is part of the FOSElasticaBundle package.
5+
*
6+
* (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
7+
*
8+
* For the full copyright and license information, please view the LICENSE
9+
* file that was distributed with this source code.
10+
*/
11+
12+
namespace FOS\ElasticaBundle\Tests\Unit\Event;
13+
14+
use FOS\ElasticaBundle\Paginator\HybridPartialResults;
15+
use Elastica\ResultSet;
16+
use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper;
17+
18+
class HybridPartialResultsTest extends UnitTestHelper
19+
{
20+
protected function mockResultSet()
21+
{
22+
$mock = $this
23+
->getMockBuilder(ResultSet::class)
24+
->disableOriginalConstructor()
25+
->getMock();
26+
27+
$mock
28+
->expects($this->exactly(1))
29+
->method('getResults')
30+
->willReturn([]);
31+
32+
return $mock;
33+
}
34+
35+
public function testToArray()
36+
{
37+
$transformer = $this->mockElasticaToModelTransformer();
38+
39+
$resultSet = $this->mockResultSet();
40+
41+
$results = new HybridPartialResults($resultSet, $transformer);
42+
43+
$results->toArray();
44+
}
45+
}

tests/Unit/Paginator/RawPaginatorAdapterTest.php

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616
use Elastica\ResultSet;
1717
use Elastica\SearchableInterface;
1818
use InvalidArgumentException;
19-
use PHPUnit\Framework\TestCase;
19+
use FOS\ElasticaBundle\Tests\Unit\UnitTestHelper;
2020

21-
class RawPaginatorAdapterTest extends TestCase
21+
class RawPaginatorAdapterTest extends UnitTestHelper
2222
{
23-
private function mockResultSet()
23+
protected function mockResultSet()
2424
{
2525
$methods = ['getTotalHits', 'getAggregations', 'getSuggests', 'getMaxScore'];
2626
$mock = $this
@@ -31,14 +31,6 @@ private function mockResultSet()
3131
return $mock;
3232
}
3333

34-
private function mockSearchable()
35-
{
36-
$mock = $this
37-
->getMockBuilder(SearchableInterface::class)
38-
->getMock();
39-
return $mock;
40-
}
41-
4234
private function createAdapterWithSearch($methodName, $value)
4335
{
4436
$resultSet = $this->mockResultSet();

tests/Unit/UnitTestHelper.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace FOS\ElasticaBundle\Tests\Unit;
1313

14+
use FOS\ElasticaBundle\Transformer\ElasticaToModelTransformerInterface;
15+
use Elastica\SearchableInterface;
16+
use Elastica\ResultSet;
1417
use PHPUnit\Framework\TestCase;
1518

1619
class UnitTestHelper extends TestCase
@@ -29,4 +32,29 @@ protected function getProtectedProperty($object, string $property)
2932

3033
return $reflectionProperty->getValue($object);
3134
}
35+
36+
protected function mockElasticaToModelTransformer()
37+
{
38+
$mock = $this
39+
->getMockBuilder(ElasticaToModelTransformerInterface::class)
40+
->getMock();
41+
return $mock;
42+
}
43+
44+
protected function mockSearchable()
45+
{
46+
$mock = $this
47+
->getMockBuilder(SearchableInterface::class)
48+
->getMock();
49+
return $mock;
50+
}
51+
52+
protected function mockResultSet()
53+
{
54+
$mock = $this
55+
->getMockBuilder(ResultSet::class)
56+
->disableOriginalConstructor()
57+
->getMock();
58+
return $mock;
59+
}
3260
}

0 commit comments

Comments
 (0)