35 lines
1 KiB
PHP
35 lines
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();
|
|
(new SchemaTool($this->manager))
|
|
->createSchema($this->manager->getMetadataFactory()->getAllMetadata());
|
|
|
|
$this->repository = $this->manager->getRepository($this->getEntityClass());
|
|
foreach ($this->repository->findAll() as $object) {
|
|
$this->manager->remove($object);
|
|
}
|
|
|
|
$this->manager->flush();
|
|
}
|
|
}
|