<?php

declare(strict_types=1);

namespace App\Tests\Module\Commercial\Api;

use App\Module\Commercial\Domain\Entity\Supplier;

/**
 * Tests d'unicite fournisseur (M2, RG-2.11). Le doublon de companyName (409) est
 * couvert par {@see SupplierApiTest::testPostDuplicateCompanyNameReturns409}. Ce
 * fichier prouve l'envers de la decision § 2.6 : SIREN NON unique (etablissements
 * multiples). Jumeau de ClientUniquenessTest (M1).
 *
 * @internal
 */
final class SupplierUniquenessTest extends AbstractSupplierApiTestCase
{
    public function testDuplicateSirenIsAllowed(): void
    {
        self::bootKernel();
        $em = $this->getEm();

        $one = $this->seedSupplier('Siren Share One');
        $two = $this->seedSupplier('Siren Share Two');

        // Le SIREN n'est pas ecrivable au POST (groupe accounting) : seed direct.
        $one->setSiren('123456789');
        $two->setSiren('123456789');
        $em->flush();

        // Aucune exception : pas d'index unique sur siren (§ 2.6).
        self::assertSame('123456789', $em->getRepository(Supplier::class)->find($one->getId())?->getSiren());
        self::assertSame('123456789', $em->getRepository(Supplier::class)->find($two->getId())?->getSiren());
    }
}
