for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace EcodevTests\Felix\Traits;
use Doctrine\DBAL\DriverManager;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Mapping\UnderscoreNamingStrategy;
use Doctrine\ORM\ORMSetup;
use Ecodev\Felix\ORM\Query\Filter\AclFilter;
use Ecodev\Felix\ORM\Query\NativeIn;
use Laminas\ServiceManager\ServiceManager;
/**
* Trait to easily set up a dummy entity manager.
*/
trait TestWithEntityManager
{
private EntityManager $entityManager;
public function setUp(): void
// Create the entity manager
$config = ORMSetup::createAttributeMetadataConfiguration([__DIR__ . '/Blog/Model'], true);
$config->addCustomNumericFunction('native_in', NativeIn::class);
$config->setNamingStrategy(new UnderscoreNamingStrategy(CASE_LOWER));
$config->addFilter(AclFilter::class, AclFilter::class);
$connection = DriverManager::getConnection([
'wrapperClass' => MariaDbQuotingConnection::class,
'driver' => 'sqlite3',
'memory' => true,
]);
$this->entityManager = new EntityManager($connection, $config);
global $container;
$container = new ServiceManager([
'factories' => [
EntityManager::class => fn () => $this->entityManager,
],
}
public function tearDown(): void
$container = null;