feat(mail) : MailConfiguration entity + repository + singleton test

This commit is contained in:
2026-05-19 23:15:47 +02:00
parent 07b7d054d5
commit 3cac87aa24
4 changed files with 270 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
<?php
declare(strict_types=1);
namespace App\Tests\Unit\Repository;
use App\Entity\MailConfiguration;
use App\Repository\MailConfigurationRepository;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
/**
* @internal
*/
class MailConfigurationRepositoryTest extends KernelTestCase
{
private MailConfigurationRepository $repository;
private EntityManagerInterface $em;
protected function setUp(): void
{
self::bootKernel();
$container = static::getContainer();
$this->repository = $container->get(MailConfigurationRepository::class);
$this->em = $container->get('doctrine.orm.entity_manager');
$this->em->getConnection()->executeStatement('TRUNCATE TABLE mail_configuration RESTART IDENTITY CASCADE');
}
public function testFindSingletonReturnsNullWhenEmpty(): void
{
$result = $this->repository->findSingleton();
self::assertNull($result);
}
public function testFindSingletonReturnsFirstRecord(): void
{
$config = new MailConfiguration();
$config->setImapHost('ssl0.ovh.net');
$config->setEnabled(false);
$this->em->persist($config);
$this->em->flush();
$result = $this->repository->findSingleton();
self::assertInstanceOf(MailConfiguration::class, $result);
self::assertSame('ssl0.ovh.net', $result->getImapHost());
self::assertFalse($result->isEnabled());
}
}