| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 | 
							- <?php
 - 
 - namespace Tool;
 - 
 - use Doctrine\Common\Annotations\AnnotationReader;
 - use Doctrine\ODM\MongoDB\Mapping\Driver\AnnotationDriver;
 - use Doctrine\ODM\MongoDB\DocumentManager;
 - use Doctrine\Common\EventManager;
 - use Doctrine\MongoDB\Connection;
 - use Gedmo\Translatable\TranslatableListener;
 - use Gedmo\Sluggable\SluggableListener;
 - use Gedmo\Timestampable\TimestampableListener;
 - use Gedmo\SoftDeleteable\SoftDeleteableListener;
 - use Gedmo\Loggable\LoggableListener;
 - 
 - /**
 -  * Base test case contains common mock objects
 -  * and functionality among all extensions using
 -  * ORM object manager
 -  *
 -  * @author Gediminas Morkevicius <gediminas.morkevicius@gmail.com>
 -  * @package Gedmo
 -  * @subpackage BaseTestCaseMongoODM
 -  * @link http://www.gediminasm.org
 -  * @license MIT License (http://www.opensource.org/licenses/mit-license.php)
 -  */
 - abstract class BaseTestCaseMongoODM extends \PHPUnit_Framework_TestCase
 - {
 -     /**
 -      * @var DocumentManager
 -      */
 -     protected $dm;
 - 
 -     /**
 -      * {@inheritdoc}
 -      */
 -     protected function setUp()
 -     {
 -         if (!class_exists('Mongo')) {
 -             $this->markTestSkipped('Missing Mongo extension.');
 -         }
 -     }
 - 
 -     /**
 -      * {@inheritdoc}
 -      */
 -     protected function tearDown()
 -     {
 -         if ($this->dm) {
 -             foreach ($this->dm->getDocumentDatabases() as $db) {
 -                 foreach ($db->listCollections() as $collection) {
 -                     $collection->drop();
 -                 }
 -             }
 -             $this->dm->getConnection()->close();
 -             $this->dm = null;
 -         }
 -     }
 - 
 -     /**
 -      * DocumentManager mock object together with
 -      * annotation mapping driver and database
 -      *
 -      * @param EventManager $evm
 -      * @return DocumentManager
 -      */
 -     protected function getMockDocumentManager(EventManager $evm = null, $config = null)
 -     {
 -         $conn = new Connection();
 - 
 -         $config = $config ? $config : $this->getMockAnnotatedConfig();
 - 
 -         try {
 -             $this->dm = DocumentManager::create($conn, $config, $evm ?: $this->getEventManager());
 -             $this->dm->getConnection()->connect();
 -         } catch (\MongoException $e) {
 -             $this->markTestSkipped('Doctrine MongoDB ODM failed to connect');
 -         }
 -         return $this->dm;
 -     }
 - 
 -     /**
 -      * DocumentManager mock object with
 -      * annotation mapping driver
 -      *
 -      * @param EventManager $evm
 -      * @return DocumentManager
 -      */
 -     protected function getMockMappedDocumentManager(EventManager $evm = null, $config = null)
 -     {
 -         $conn = $this->getMock('Doctrine\\MongoDB\\Connection');
 - 
 -         $config = $config ? $config : $this->getMockAnnotatedConfig();
 - 
 -         $this->dm = DocumentManager::create($conn, $config, $evm ?: $this->getEventManager());
 - 
 -         return $this->dm;
 -     }
 - 
 -     /**
 -      * Creates default mapping driver
 -      *
 -      * @return \Doctrine\ORM\Mapping\Driver\Driver
 -      */
 -     protected function getMetadataDriverImplementation()
 -     {
 -         return new AnnotationDriver($_ENV['annotation_reader']);
 -     }
 - 
 -     /**
 -      * Build event manager
 -      *
 -      * @return EventManager
 -      */
 -     private function getEventManager()
 -     {
 -         $evm = new EventManager;
 -         $evm->addEventSubscriber(new SluggableListener);
 -         $evm->addEventSubscriber(new LoggableListener);
 -         $evm->addEventSubscriber(new TranslatableListener);
 -         $evm->addEventSubscriber(new TimestampableListener);
 -         $evm->addEventSubscriber(new SoftDeleteableListener());
 - 
 -         return $evm;
 -     }
 - 
 -     /**
 -      * Get annotation mapping configuration
 -      *
 -      * @return Doctrine\ORM\Configuration
 -      */
 -     protected function getMockAnnotatedConfig()
 -     {
 -         $config = $this->getMock('Doctrine\\ODM\\MongoDB\\Configuration');
 - 
 -         $config->expects($this->any())
 -             ->method('getFilterClassName')
 -             ->will($this->returnValue('Gedmo\\SoftDeleteable\\Filter\\ODM\\SoftDeleteableFilter'));
 - 
 -         $config->expects($this->once())
 -             ->method('getProxyDir')
 -             ->will($this->returnValue(__DIR__.'/../../temp'));
 - 
 -         $config->expects($this->once())
 -             ->method('getProxyNamespace')
 -             ->will($this->returnValue('Proxy'));
 - 
 -         $config->expects($this->once())
 -             ->method('getHydratorDir')
 -             ->will($this->returnValue(__DIR__.'/../../temp'));
 - 
 -         $config->expects($this->once())
 -             ->method('getHydratorNamespace')
 -             ->will($this->returnValue('Hydrator'));
 - 
 -         $config->expects($this->any())
 -             ->method('getDefaultDB')
 -             ->will($this->returnValue('gedmo_extensions_test'));
 - 
 -         $config->expects($this->once())
 -             ->method('getAutoGenerateProxyClasses')
 -             ->will($this->returnValue(true));
 - 
 -         $config->expects($this->once())
 -             ->method('getAutoGenerateHydratorClasses')
 -             ->will($this->returnValue(true));
 - 
 -         $config->expects($this->once())
 -             ->method('getClassMetadataFactoryName')
 -             ->will($this->returnValue('Doctrine\\ODM\\MongoDB\\Mapping\\ClassMetadataFactory'));
 - 
 -         $config
 -             ->expects($this->any())
 -             ->method('getMongoCmd')
 -             ->will($this->returnValue('$'))
 -         ;
 - 
 -         $config
 -             ->expects($this->any())
 -             ->method('getDefaultCommitOptions')
 -             ->will($this->returnValue(array('safe' => true)))
 -         ;
 - 
 -         $mappingDriver = $this->getMetadataDriverImplementation();
 - 
 -         $config->expects($this->any())
 -             ->method('getMetadataDriverImpl')
 -             ->will($this->returnValue($mappingDriver));
 - 
 -         return $config;
 -     }
 - }
 
 
  |