Spaces:
No application file
No application file
File size: 2,238 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
<?php
namespace Mautic\CoreBundle\Test;
use Doctrine\ORM\Events;
use Mautic\CoreBundle\Test\DoctrineExtensions\TablePrefix;
use Mautic\InstallBundle\Helper\SchemaHelper;
use Mautic\InstallBundle\InstallFixtures\ORM\LeadFieldData;
use Mautic\InstallBundle\InstallFixtures\ORM\RoleData;
use Mautic\UserBundle\DataFixtures\ORM\LoadRoleData;
use Mautic\UserBundle\DataFixtures\ORM\LoadUserData;
/**
* @deprecated since Mautic 5.0, to be removed in 6.0 with no replacement.
*/
abstract class MauticSqliteTestCase extends AbstractMauticTestCase
{
protected function setUp(): void
{
parent::setUp();
if (file_exists($this->getOriginalDatabasePath())) {
$this->createDatabaseFromFile();
} else {
$this->createDatabase();
$this->applyMigrations();
$this->installDatabaseFixtures([LeadFieldData::class, RoleData::class, LoadRoleData::class, LoadUserData::class]);
$this->backupOrginalDatabase();
}
}
private function createDatabase(): void
{
// fix problem with prefixes in sqlite
$tablePrefix = new TablePrefix('prefix_');
$this->em->getEventManager()->addEventListener(Events::loadClassMetadata, $tablePrefix);
$dbParams = array_merge(static::getContainer()->get('doctrine')->getConnection()->getParams(), [
'table_prefix' => null,
'backup_tables' => 0,
]);
// create schema
$schemaHelper = new SchemaHelper($dbParams);
$schemaHelper->setEntityManager($this->em);
$schemaHelper->createDatabase();
$schemaHelper->installSchema();
$this->em->getConnection()->close();
}
private function createDatabaseFromFile(): void
{
copy($this->getOriginalDatabasePath(), $this->getDatabasePath());
}
private function backupOrginalDatabase(): void
{
copy($this->getDatabasePath(), $this->getOriginalDatabasePath());
}
private function getOriginalDatabasePath()
{
return $this->getDatabasePath().'.original';
}
private function getDatabasePath()
{
return static::getContainer()->get('doctrine')->getConnection()->getParams()['path'];
}
}
|