<?php declare(strict_types=1); namespace ShlinkioTest\Shlink\Common; use Doctrine\Common\DataFixtures\Executor\ORMExecutor; use Doctrine\Common\DataFixtures\Loader; use Doctrine\Common\DataFixtures\Purger\ORMPurger; use Doctrine\ORM\EntityManagerInterface; use Symfony\Component\Process\Process; use function file_exists; use function realpath; use function sys_get_temp_dir; use function unlink; class TestHelper { public function createTestDb(): void { $shlinkDbPath = realpath(sys_get_temp_dir()) . '/shlink-tests.db'; if (file_exists($shlinkDbPath)) { unlink($shlinkDbPath); } $process = new Process(['vendor/bin/doctrine', 'orm:schema-tool:create', '--no-interaction', '-q']); $process->inheritEnvironmentVariables() ->mustRun(); } public function seedFixtures(EntityManagerInterface $em, array $config): void { $paths = $config['paths'] ?? []; if (empty($paths)) { return; } $loader = new Loader(); foreach ($paths as $path) { $loader->loadFromDirectory($path); } $executor = new ORMExecutor($em, new ORMPurger()); $executor->execute($loader->getFixtures()); } }