Added tests for Doctrine Listeners

This commit is contained in:
Richard Miller 2012-01-05 22:56:16 +00:00
parent 231e3a0b06
commit 539bbebdd5
2 changed files with 180 additions and 0 deletions

View file

@ -0,0 +1,90 @@
<?php
namespace FOQ\ElasticaBundle\Tests\Doctrine\MongoDB;
use FOQ\ElasticaBundle\Doctrine\MongoDB\Listener;
class Document{}
/**
* @author Richard Miller <info@limethinking.co.uk>
*/
class ListenerTest extends \PHPUnit_Framework_TestCase
{
public function testObjectInsertedOnPersist()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ODM\MongoDB\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\MongoDB\Document';
$document = new Document();
$eventArgsMock->expects($this->once())
->method('getDocument')
->will($this->returnValue($document));
$persisterMock->expects($this->once())
->method('insertOne')
->with($this->equalTo($document));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postPersist($eventArgsMock);
}
public function testObjectReplacedOnUpdate()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ODM\MongoDB\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\MongoDB\Document';
$document = new Document();
$eventArgsMock->expects($this->once())
->method('getDocument')
->will($this->returnValue($document));
$persisterMock->expects($this->once())
->method('replaceOne')
->with($this->equalTo($document));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postUpdate($eventArgsMock);
}
public function testObjectDeletedOnRemove()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ODM\MongoDB\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\MongoDB\Document';
$document = new Document();
$eventArgsMock->expects($this->once())
->method('getDocument')
->will($this->returnValue($document));
$persisterMock->expects($this->once())
->method('deleteOne')
->with($this->equalTo($document));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postRemove($eventArgsMock);
}
}

View file

@ -0,0 +1,90 @@
<?php
namespace FOQ\ElasticaBundle\Tests\Doctrine\ORM;
use FOQ\ElasticaBundle\Doctrine\ORM\Listener;
class Entity{}
/**
* @author Richard Miller <info@limethinking.co.uk>
*/
class ListenerTest extends \PHPUnit_Framework_TestCase
{
public function testObjectInsertedOnPersist()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ORM\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\ORM\Entity';
$entity = new Entity;
$eventArgsMock->expects($this->once())
->method('getEntity')
->will($this->returnValue($entity));
$persisterMock->expects($this->once())
->method('insertOne')
->with($this->equalTo($entity));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postPersist($eventArgsMock);
}
public function testObjectReplacedOnUpdate()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ORM\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\ORM\Entity';
$entity = new Entity;
$eventArgsMock->expects($this->once())
->method('getEntity')
->will($this->returnValue($entity));
$persisterMock->expects($this->once())
->method('replaceOne')
->with($this->equalTo($entity));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postUpdate($eventArgsMock);
}
public function testObjectDeletedOnRemove()
{
$persisterMock = $this->getMockBuilder('FOQ\ElasticaBundle\Persister\ObjectPersisterInterface')
->disableOriginalConstructor()
->getMock();
$eventArgsMock = $this->getMockBuilder('Doctrine\ORM\Event\LifecycleEventArgs')
->disableOriginalConstructor()
->getMock();
$objectName = 'FOQ\ElasticaBundle\Tests\Doctrine\ORM\Entity';
$entity = new Entity;
$eventArgsMock->expects($this->once())
->method('getEntity')
->will($this->returnValue($entity));
$persisterMock->expects($this->once())
->method('deleteOne')
->with($this->equalTo($entity));
$listener = new Listener($persisterMock, $objectName, array(), null);
$listener->postRemove($eventArgsMock);
}
}