Files
Chamilo/vendor/knplabs/knp-components/tests/Test/Tool/BaseTestCasePHPCRODM.php
T
Xes 73154ae174
Behat tests 1.11.x 🐞 / PHP 7.4 Test on ubuntu-latest (push) Canceled after 0s
PHP-CS-Fixer / composer_install (7.4) (push) Canceled after 0s
Chamilo 1.11.40 (ZIP oficial v1.11.40)
Fuente: https://github.com/chamilo/chamilo-lms/releases/download/v1.11.40/chamilo-1.11.40.zip
sha256: 1cf4bf2cc7bae1ef1a1eff643235db1d552f78ddf4b6dd1e2d2dac9868679439
Snapshot independiente (rama huerfana); diffable vs 1.11.38. vendor incluido.
2026-08-06 17:59:45 +02:00

89 lines
2.3 KiB
PHP

<?php
namespace Test\Tool;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\DBAL\DriverManager;
use Doctrine\ODM\PHPCR\Mapping\Driver\AnnotationDriver;
use Doctrine\ODM\PHPCR\DocumentManager;
use Doctrine\Common\EventManager;
use Doctrine\MongoDB\Connection;
use Jackalope\RepositoryFactoryDoctrineDBAL;
use Jackalope\Session;
use Jackalope\Transport\DoctrineDBAL\RepositorySchema;
/**
* Base test case contains common mock objects
*/
abstract class BaseTestCasePHPCRODM extends \PHPUnit_Framework_TestCase
{
/**
* @var DocumentManager
*/
protected $dm;
protected function setUp()
{
if (!class_exists('Doctrine\ODM\PHPCR\Query\Query')) {
$this->markTestSkipped('Doctrine PHPCR-ODM is not available');
}
}
protected function tearDown()
{
if ($this->dm) {
$this->dm = null;
}
}
protected function getMockDocumentManager(EventManager $evm = null)
{
$config = new \Doctrine\ODM\PHPCR\Configuration();
$config->setMetadataDriverImpl($this->getMetadataDriverImplementation());
$this->dm = DocumentManager::create($this->getSession(), $config, $evm ?: $this->getEventManager());
return $this->dm;
}
protected function getMetadataDriverImplementation()
{
return new AnnotationDriver($_ENV['annotation_reader']);
}
private function getSession()
{
$connection = DriverManager::getConnection(array(
'driver' => 'pdo_sqlite',
'path' => ':memory:',
));
$factory = new RepositoryFactoryDoctrineDBAL();
$repository = $factory->getRepository(array(
'jackalope.doctrine_dbal_connection' => $connection,
));
$schema = new RepositorySchema(array('disable_fks' => true), $connection);
$schema->reset();
$session = $repository->login(new \PHPCR\SimpleCredentials('', ''));
$cnd = <<<CND
<phpcr='http://www.doctrine-project.org/projects/phpcr_odm'>
[phpcr:managed]
mixin
- phpcr:class (STRING)
- phpcr:classparents (STRING) multiple
CND;
$session->getWorkspace()->getNodeTypeManager()->registerNodeTypesCnd($cnd, true);
return $session;
}
private function getEventManager()
{
$evm = new EventManager();
return $evm;
}
}