Skip to content

Commit 3e8decc

Browse files
committed
unit tests for managers
1 parent d630b71 commit 3e8decc

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed

Tests/Manager/FinderManagerTest.php

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<?php
2+
3+
namespace Mdiyakov\DoctrineSolrBundle\Tests\Manager;
4+
5+
use Mdiyakov\DoctrineSolrBundle\Manager\FinderManager;
6+
7+
class FinderManagerTest extends \PHPUnit_Framework_TestCase
8+
{
9+
10+
public function testConstructorSuccess()
11+
{
12+
$entityClass = 'MyEntity';
13+
$schemaName = 'schema';
14+
$config = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Config\Config')->disableOriginalConstructor()->getMock();
15+
$queryBuilder = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Query\SelectQueryBuilder')->disableOriginalConstructor()->getMock();
16+
$classSelectQuery = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Query\Select\ClassSelectQuery')->disableOriginalConstructor()->getMock();
17+
$schema = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Schema\Schema')->disableOriginalConstructor()->getMock();
18+
$entityConfigs = [
19+
['class' => $entityClass, 'schema' => $schemaName]
20+
];
21+
22+
$config->expects($this->at(0))
23+
->method('getIndexedEntities')
24+
->will($this->returnValue($entityConfigs));
25+
26+
27+
$config->expects($this->at(1))
28+
->method('getSchemaByEntityClass')
29+
->will($this->returnValue($schema));
30+
31+
$config->expects($this->at(2))
32+
->method('getIndexedEntities')
33+
->will($this->returnValue($entityConfigs));
34+
35+
$queryBuilder->expects($this->at(0))
36+
->method('buildClassSelectQuery')
37+
->with($entityClass)
38+
->will($this->returnValue($classSelectQuery));
39+
40+
$manager = new FinderManager($config, $queryBuilder);
41+
42+
$schemaFinder = $manager->getSchemaFinder($schemaName);
43+
$classFinder = $manager->getClassFinder($entityClass);
44+
45+
$this->assertInstanceOf('Mdiyakov\DoctrineSolrBundle\Finder\ClassFinder', $classFinder);
46+
$this->assertInstanceOf('Mdiyakov\DoctrineSolrBundle\Finder\SchemaFinder', $schemaFinder);
47+
}
48+
}
+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
<?php
2+
3+
namespace Mdiyakov\DoctrineSolrBundle\Tests\Manager;
4+
5+
use Mdiyakov\DoctrineSolrBundle\Manager\IndexProcessManager;
6+
7+
class MyEntity {}
8+
9+
class IndexProcessManagerTest extends \PHPUnit_Framework_TestCase
10+
{
11+
/**
12+
* @var \PHPUnit_Framework_MockObject_MockObject
13+
*/
14+
private $indexerBuilder;
15+
16+
/**
17+
* @var \PHPUnit_Framework_MockObject_MockObject
18+
*/
19+
private $filterValidator;
20+
21+
/**
22+
* @var \PHPUnit_Framework_MockObject_MockObject
23+
*/
24+
private $indexer;
25+
26+
public function setUp()
27+
{
28+
$this->indexerBuilder = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Indexer\IndexerBuilder')->disableOriginalConstructor()->getMock();
29+
$this->filterValidator = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Filter\FilterValidator')->disableOriginalConstructor()->getMock();
30+
$this->indexer = $this->getMockBuilder('Mdiyakov\DoctrineSolrBundle\Indexer\Indexer')->disableOriginalConstructor()->getMock();
31+
}
32+
33+
public function testReindex()
34+
{
35+
$entity = new MyEntity();
36+
$this->indexerBuilder->expects($this->once())
37+
->method('createByEntityClass')
38+
->with(get_class($entity))
39+
->will($this->returnValue($this->indexer));
40+
41+
$this->filterValidator->expects($this->once())
42+
->method('validate')
43+
->with($entity);
44+
45+
$this->indexer->expects($this->once())
46+
->method('indexAllFields')
47+
->with($entity);
48+
49+
$indexProcessManager = new IndexProcessManager($this->indexerBuilder, $this->filterValidator);
50+
$result = $indexProcessManager->reindex($entity);
51+
$this->assertEquals(true, $result->isSuccess());
52+
}
53+
54+
55+
public function testRemove()
56+
{
57+
$entity = new MyEntity();
58+
59+
$this->indexerBuilder->expects($this->once())
60+
->method('createByEntityClass')
61+
->with(get_class($entity))
62+
->will($this->returnValue($this->indexer));
63+
64+
$this->indexer->expects($this->once())
65+
->method('removeByPrimaryKey')
66+
->with($entity);
67+
68+
$indexProcessManager = new IndexProcessManager($this->indexerBuilder, $this->filterValidator);
69+
$indexProcessManager->remove($entity);
70+
}
71+
}

0 commit comments

Comments
 (0)