<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.readthedocs.io/en/latest/configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="tests/bootstrap.php">
  <coverage processUncoveredFiles="true">
    <include>
      <directory suffix=".php">src</directory>
    </include>
  </coverage>
  <php>
    <ini name="error_reporting" value="-1"/>
    <server name="APP_ENV" value="test" force="true"/>
    <server name="SHELL_VERBOSITY" value="-1"/>
    <server name="SYMFONY_PHPUNIT_REMOVE" value=""/>
    <server name="SYMFONY_PHPUNIT_VERSION" value="7.5"/>
    <server name="SYMFONY_DEPRECATIONS_HELPER" value="disabled" />
  </php>
  <testsuites>
    <!-- Suite par défaut : tous les tests -->
    <testsuite name="Project Test Suite">
      <directory>tests</directory>
    </testsuite>

    <!-- Suites par fonctionnalité -->
    <testsuite name="ssa">
      <directory>tests/Service/Ssa</directory>
      <directory>tests/Controller/Ssa*</directory>
      <file>tests/Service/SSAServiceTest.php</file>
      <file>tests/Fixtures/SsaTestFixtures.php</file>
    </testsuite>

    <testsuite name="sepa">
      <directory>tests/Service/Sepa</directory>
      <directory>tests/Twig/Sepa*</directory>
      <file>tests/Controller/SsaSepaRoutesTest.php</file>
    </testsuite>

    <testsuite name="mlc">
      <directory>tests/Service/Purchase</directory>
      <directory>tests/Service/Subscription</directory>
      <directory>tests/Form</directory>
    </testsuite>

    <!-- Suites par type de test -->
    <testsuite name="unit">
      <directory>tests/Service</directory>
      <directory>tests/Form</directory>
      <directory>tests/Twig</directory>
    </testsuite>

    <testsuite name="functional">
      <directory>tests/Controller</directory>
      <directory>tests/Integration</directory>
      <directory>tests/Role</directory>
    </testsuite>

    <testsuite name="command">
      <directory>tests/Command</directory>
    </testsuite>

    <!-- Suite pour tests profile-aware -->
    <testsuite name="profile">
      <directory>tests/Profile</directory>
    </testsuite>
  </testsuites>
  <listeners>
    <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener"/>
  </listeners>
  <!-- 
    Groupes PHPUnit disponibles pour le filtrage:
    - @group ssa : Tests spécifiques SSA
    - @group mlc : Tests spécifiques MLC
    - @group sepa : Tests spécifiques SEPA
    - @group profile-dependent : Tests qui dépendent du profil de configuration
    - @group requires-ssa : Tests qui nécessitent ALLOW_SSA=true
    - @group requires-mlc : Tests qui nécessitent ALLOW_MLC=true
    - @group requires-sepa : Tests qui nécessitent USE_SEPA=true
    
    Exemples d'utilisation:
    vendor/bin/phpunit --testsuite=ssa
    vendor/bin/phpunit --group=requires-ssa
    vendor/bin/phpunit --exclude-group=requires-sepa
  -->
</phpunit>
