35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php declare(strict_types=1);
|
|
|
|
namespace App\Tests;
|
|
|
|
use Doctrine\ORM\EntityManagerInterface;
|
|
use Doctrine\ORM\EntityRepository;
|
|
use Doctrine\ORM\Tools\SchemaTool;
|
|
use Override;
|
|
use Symfony\Bundle\FrameworkBundle\KernelBrowser;
|
|
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
|
|
|
abstract class DbWebTest extends WebTestCase
|
|
{
|
|
abstract public function getEntityClass(): string;
|
|
|
|
protected KernelBrowser $client;
|
|
protected EntityManagerInterface $manager;
|
|
protected EntityRepository $repository;
|
|
|
|
#[Override]
|
|
protected function setUp(): void
|
|
{
|
|
$this->client = static::createClient();
|
|
$this->manager = static::getContainer()->get('doctrine')->getManager();
|
|
$schemaTool = new SchemaTool($this->manager);
|
|
$metadata = $this->manager->getMetadataFactory()
|
|
->getAllMetadata();
|
|
$schemaTool->dropDatabase();
|
|
$schemaTool->updateSchema($metadata);
|
|
|
|
if ($this->getEntityClass() !== '') {
|
|
$this->repository = $this->manager->getRepository($this->getEntityClass());
|
|
}
|
|
}
|
|
}
|