From 539bbebdd59bfd55eb223ef320e401b87e076eb8 Mon Sep 17 00:00:00 2001 From: Richard Miller Date: Thu, 5 Jan 2012 22:56:16 +0000 Subject: [PATCH] Added tests for Doctrine Listeners --- Tests/Doctrine/MongoDB/ListenerTest.php | 90 +++++++++++++++++++++++++ Tests/Doctrine/ORM/ListenerTest.php | 90 +++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 Tests/Doctrine/MongoDB/ListenerTest.php create mode 100644 Tests/Doctrine/ORM/ListenerTest.php diff --git a/Tests/Doctrine/MongoDB/ListenerTest.php b/Tests/Doctrine/MongoDB/ListenerTest.php new file mode 100644 index 0000000..eff42d7 --- /dev/null +++ b/Tests/Doctrine/MongoDB/ListenerTest.php @@ -0,0 +1,90 @@ + + */ +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); + } + +} diff --git a/Tests/Doctrine/ORM/ListenerTest.php b/Tests/Doctrine/ORM/ListenerTest.php new file mode 100644 index 0000000..ac733f7 --- /dev/null +++ b/Tests/Doctrine/ORM/ListenerTest.php @@ -0,0 +1,90 @@ + + */ +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); + } + +}