Browse Source

fix tests and post merge errors

Olivier Massot 1 year ago
parent
commit
489ba10a5e

+ 8 - 5
src/Entity/Access/Access.php

@@ -4,9 +4,9 @@ declare(strict_types=1);
 
 namespace App\Entity\Access;
 
-use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Doctrine\Orm\Filter\BooleanFilter;
 use ApiPlatform\Metadata\ApiFilter;
+use ApiPlatform\Metadata\ApiResource;
 use ApiPlatform\Serializer\Filter\GroupFilter;
 use App\Entity\AccessWish\AccessWish;
 use App\Entity\Billing\AccessBilling;
@@ -37,19 +37,22 @@ use App\Entity\Message\Email;
 use App\Entity\Message\Mail;
 use App\Entity\Message\Sms;
 use App\Entity\Organization\Jury;
+use App\Entity\Organization\Organization;
 use App\Entity\Organization\OrganizationLicence;
 use App\Entity\Organization\Parameters;
 use App\Entity\Person\CommissionMember;
 use App\Entity\Person\CompanyPerson;
-use App\Entity\Product\Equipment;
-use App\Entity\Product\EquipmentLoan;
-use App\Entity\Reward\AccessReward;
-use App\Repository\Access\AccessRepository;
 use App\Entity\Person\Person;
 use App\Entity\Person\PersonActivity;
 use App\Entity\Place\PlaceRepair;
 use App\Entity\Place\RoomRepair;
+use App\Entity\Product\Equipment;
+use App\Entity\Product\EquipmentLoan;
 use App\Entity\Product\EquipmentRepair;
+use App\Entity\Reward\AccessReward;
+use App\Filter\ApiPlatform\Person\FullNameFilter;
+use App\Filter\ApiPlatform\Utils\InFilter;
+use App\Repository\Access\AccessRepository;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;

+ 5 - 3
src/Entity/Organization/Organization.php

@@ -34,6 +34,7 @@ use App\Entity\Person\Commission;
 use App\Entity\Place\Place;
 use App\Entity\Product\Equipment;
 use App\Entity\Product\Intangible;
+use App\Entity\Reward\Reward;
 use App\Enum\Organization\CategoryEnum;
 use App\Enum\Organization\LegalEnum;
 use App\Enum\Organization\OpcaEnum;
@@ -41,7 +42,6 @@ use App\Enum\Organization\PrincipalTypeEnum;
 use App\Enum\Organization\SchoolCategoryEnum;
 use App\Enum\Organization\TypeEstablishmentDetailEnum;
 use App\Enum\Organization\TypeEstablishmentEnum;
-use App\Entity\Reward\Reward;
 use App\Repository\Organization\OrganizationRepository;
 // use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use Doctrine\Common\Collections\ArrayCollection;
@@ -314,8 +314,8 @@ class Organization
     #[ORM\OneToMany(mappedBy: 'organization', targetEntity: Reward::class, orphanRemoval: true)]
     private Collection $rewards;
 
-//    #[ORM\OneToOne()]
-//    private OnlineRegistrationSettings $onlineRegistrationSettings;
+    //    #[ORM\OneToOne()]
+    //    private OnlineRegistrationSettings $onlineRegistrationSettings;
 
     #[ORM\ManyToMany(targetEntity: Tagg::class, inversedBy: 'organizations', cascade: ['persist'])]
     #[ORM\JoinTable(name: 'tag_organization')]
@@ -1840,6 +1840,7 @@ class Organization
             $this->rewards[] = $rewards;
             $rewards->setOrganization($this);
         }
+
         return $this;
     }
 
@@ -1851,6 +1852,7 @@ class Organization
                 $rewards->setOrganization(null);
             }
         }
+
         return $this;
     }
 }

+ 5 - 4
src/Entity/Reward/Reward.php

@@ -1,16 +1,17 @@
 <?php
+
 declare(strict_types=1);
 
 namespace App\Entity\Reward;
 
-//use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
+// use DH\Auditor\Provider\Doctrine\Auditing\Annotation\Auditable;
 use App\Entity\Organization\Organization;
 use Doctrine\ORM\Mapping as ORM;
 
 /**
- * Classe qui gère les disctinctions de la CMF
+ * Classe qui gère les disctinctions de la CMF.
  */
-//#[Auditable]
+// #[Auditable]
 #[ORM\Entity]
 class Reward
 {
@@ -39,4 +40,4 @@ class Reward
 
         return $this;
     }
-}
+}

+ 0 - 1
src/Service/Cotisation/Utils.php

@@ -11,7 +11,6 @@ use App\Repository\Network\NetworkOrganizationRepository;
 use App\Service\Network\Utils as NetworkUtils;
 use App\Service\Organization\Utils as OrganizationUtils;
 use App\Service\Utils\DatesUtils;
-use App\Tests\Service\Cotisation\UtilsTest;
 
 /**
  * Class Utils : Service rassemblant des fonctions d'interrogation pour gérer des conditions dans les Cotisations.

+ 8 - 20
src/Service/Organization/Utils.php

@@ -8,9 +8,9 @@ use App\Entity\Organization\Organization;
 use App\Enum\Organization\OrganizationIdsEnum;
 use App\Enum\Organization\SettingsProductEnum;
 use App\Repository\Network\NetworkOrganizationRepository;
+use App\Service\Network\Utils as NetworkUtils;
 use App\Service\Utils\DatesUtils;
 use App\Service\Utils\UrlBuilder;
-use App\Service\Network\Utils as NetworkUtils;
 
 /**
  * Service rassemblant des fonctions d'aide pour les questions se rapportant à l'organisation.
@@ -23,8 +23,8 @@ class Utils
     public function __construct(
         private NetworkOrganizationRepository $networkOrganizationRepository,
         private NetworkUtils $networkUtils
-    )
-    {}
+    ) {
+    }
 
     /**
      * Teste si l'organisation est considérée comme une structure == n'a pas un produit manager.
@@ -81,8 +81,7 @@ class Utils
 
     /**
      * Test si l'organisation est la structure CMF.
-     * @param Organization $organization
-     * @return bool
+     *
      * @see UtilsTest::testIsCMF()
      */
     public function isCMF(Organization $organization): bool
@@ -93,8 +92,6 @@ class Utils
     /**
      * Test si l'organisation est un dernier parent ET appartient à la CMF.
      *
-     * @param Organization $organization
-     * @return bool
      * @see UtilsTest::testIsLastParentAndCMF()
      */
     public function isLastParentAndCMF(Organization $organization): bool
@@ -103,10 +100,8 @@ class Utils
     }
 
     /**
-     * Test si l'organisation est une structure (non manager) ET appartient à la CMF
+     * Test si l'organisation est une structure (non manager) ET appartient à la CMF.
      *
-     * @param Organization $organization
-     * @return bool
      * @see UtilsTest::testIsStructureAndCMF()
      */
     public function isStructureAndCMF(Organization $organization): bool
@@ -115,10 +110,8 @@ class Utils
     }
 
     /**
-     * Test si la structure est un manager ET qu'elle appartient à la CMF
+     * Test si la structure est un manager ET qu'elle appartient à la CMF.
      *
-     * @param Organization $organization
-     * @return bool
      * @see UtilsTest::testIsManagerAndCMF()
      */
     public function isManagerAndCMF(Organization $organization): bool
@@ -127,10 +120,8 @@ class Utils
     }
 
     /**
-     * Test si l'organisation est un manager ET un dernier parent ET appartient à la CMF
+     * Test si l'organisation est un manager ET un dernier parent ET appartient à la CMF.
      *
-     * @param Organization $organization
-     * @return bool
      * @see UtilsTest::testIsManagerAndLastParentAndCMF()
      */
     public function isManagerAndLastParentAndCMF(Organization $organization): bool
@@ -139,10 +130,8 @@ class Utils
     }
 
     /**
-     * Test si l'organisation est un manager ET n'est pas un dernier parent ET appartient à la CMF
+     * Test si l'organisation est un manager ET n'est pas un dernier parent ET appartient à la CMF.
      *
-     * @param Organization $organization
-     * @return bool
      * @see UtilsTest::testIsManagerAndNotLastParentAndCMF()
      */
     public function isManagerAndNotLastParentAndCMF(Organization $organization): bool
@@ -150,7 +139,6 @@ class Utils
         return $this->isManager($organization) && !$this->networkOrganizationRepository->isLastParent($organization) && $this->networkUtils->isCMF($organization);
     }
 
-
     /**
      * Test si l'id de l'organisation est celui passé en paramètre (doit faire partie des OrganizationIdsEnum).
      */

+ 0 - 2
src/Service/Rest/Operation/CreateOperation.php

@@ -4,8 +4,6 @@ declare(strict_types=1);
 
 namespace App\Service\Rest\Operation;
 
-use JetBrains\PhpStorm\Pure;
-
 /**
  * A single create operation (a POST request).
  */

+ 13 - 2
tests/Unit/Service/Cotisation/UtilsTest.php

@@ -5,7 +5,10 @@ namespace App\Tests\Unit\Service\Cotisation;
 use App\Entity\Organization\Organization;
 use App\Enum\Cotisation\AlertStateEnum;
 use App\Repository\Cotisation\CotisationApiResourcesRepository;
+use App\Repository\Network\NetworkOrganizationRepository;
 use App\Service\Cotisation\Utils as CotisationUtils;
+use App\Service\Network\Utils as NetworkUtils;
+use App\Service\Organization\Utils as OrganizationUtils;
 use App\Service\Utils\DatesUtils;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
@@ -23,14 +26,22 @@ class UtilsTest extends TestCase
 
     public function setUp(): void
     {
+        $this->networkOrganizationRepository = $this->getMockBuilder(NetworkOrganizationRepository::class)
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->networkUtils = $this->getMockBuilder(NetworkUtils::class)->disableOriginalConstructor()->getMock();
+        $this->organizationUtils = $this->getMockBuilder(OrganizationUtils::class)->disableOriginalConstructor()->getMock();
+
         $this->cotisationApiResourcesRepository = $this->getMockBuilder(CotisationApiResourcesRepository::class)
             ->disableOriginalConstructor()
             ->getMock();
     }
 
-    public function getCotisationUtilsMockFor(string $methodName) {
+    public function getCotisationUtilsMockFor(string $methodName): MockObject|CotisationUtils
+    {
         return $this->getMockBuilder(CotisationUtils::class)
-            ->setConstructorArgs([$this->cotisationApiResourcesRepository])
+            ->setConstructorArgs([$this->networkUtils, $this->organizationUtils, $this->networkOrganizationRepository, $this->cotisationApiResourcesRepository])
             ->setMethodsExcept([$methodName])
             ->getMock();
     }

+ 22 - 19
tests/Unit/Service/Organization/UtilsTest.php

@@ -20,8 +20,8 @@ use PHPUnit\Framework\TestCase;
 
 class UtilsTest extends TestCase
 {
-    private MockObject | NetworkOrganizationRepository $networkOrganizationRepository;
-    private MockObject | NetworkUtils $networkUtils;
+    private MockObject|NetworkOrganizationRepository $networkOrganizationRepository;
+    private MockObject|NetworkUtils $networkUtils;
 
     public function setUp(): void
     {
@@ -32,13 +32,25 @@ class UtilsTest extends TestCase
         $this->networkUtils = $this->getMockBuilder(NetworkUtils::class)->disableOriginalConstructor()->getMock();
     }
 
-    public function getOrganizationUtilsMockFor(string $methodName) {
+    public function getOrganizationUtilsMockFor(string $methodName): MockObject|OrganizationUtils
+    {
         return $this->getMockBuilder(OrganizationUtils::class)
             ->setConstructorArgs([$this->networkOrganizationRepository, $this->networkUtils])
             ->setMethodsExcept([$methodName])
             ->getMock();
     }
 
+    private function createOrganizationWithProductMock(SettingsProductEnum $product): Organization
+    {
+        $settings = $this->getMockBuilder(Settings::class)->getMock();
+        $settings->method('getProduct')->willReturn($product);
+
+        $organization = $this->getMockBuilder(Organization::class)->getMock();
+        $organization->method('getSettings')->willReturn($settings);
+
+        return $organization;
+    }
+
     /**
      * @see OrganizationUtils::isStructure()
      */
@@ -239,7 +251,8 @@ class UtilsTest extends TestCase
     /**
      * @see OrganizationUtils::getOrganizationActiveSubdomain()
      */
-    public function testGetOrganizationActiveSubdomain(): void {
+    public function testGetOrganizationActiveSubdomain(): void
+    {
         $organizationUtils = $this->getOrganizationUtilsMockFor('getOrganizationActiveSubdomain');
 
         $subdomain1 = $this->getMockBuilder(Subdomain::class)->getMock();
@@ -261,7 +274,8 @@ class UtilsTest extends TestCase
     /**
      * @see OrganizationUtils::getOrganizationActiveSubdomain()
      */
-    public function testGetOrganizationActiveSubdomainNone(): void {
+    public function testGetOrganizationActiveSubdomainNone(): void
+    {
         $organizationUtils = $this->getOrganizationUtilsMockFor('getOrganizationActiveSubdomain');
 
         $subdomain1 = $this->getMockBuilder(Subdomain::class)->getMock();
@@ -557,7 +571,7 @@ class UtilsTest extends TestCase
      */
     public function testIsSchool(): void
     {
-        $organizationUtils = $this->getMockBuilder(TestableOrganizationUtils::class)->setMethodsExcept(['isSchool'])->getMock();
+        $organizationUtils = $this->getOrganizationUtilsMockFor('isSchool');
 
         $organization = $this->createOrganizationWithProductMock(SettingsProductEnum::ARTIST);
         $this->assertFalse($organizationUtils->isSchool($organization));
@@ -583,7 +597,7 @@ class UtilsTest extends TestCase
      */
     public function testIsArtist(): void
     {
-        $organizationUtils = $this->getMockBuilder(TestableOrganizationUtils::class)->setMethodsExcept(['isArtist'])->getMock();
+        $organizationUtils = $this->getOrganizationUtilsMockFor('isArtist');
 
         $organization = $this->createOrganizationWithProductMock(SettingsProductEnum::ARTIST);
         $this->assertTrue($organizationUtils->isArtist($organization));
@@ -609,7 +623,7 @@ class UtilsTest extends TestCase
      */
     public function testHasModule(): void
     {
-        $organizationUtils = $this->getMockBuilder(TestableOrganizationUtils::class)->setMethodsExcept(['hasModule'])->getMock();
+        $organizationUtils = $this->getOrganizationUtilsMockFor('hasModule');
 
         $settings = $this->getMockBuilder(Settings::class)->getMock();
         $settings->method('getModules')->willReturn(['foo', 'bar']);
@@ -620,15 +634,4 @@ class UtilsTest extends TestCase
         $this->assertTrue($organizationUtils->hasModule($organization, 'foo'));
         $this->assertFalse($organizationUtils->hasModule($organization, 'other'));
     }
-
-    private function createOrganizationWithProductMock(SettingsProductEnum $product): Organization
-    {
-        $settings = $this->getMockBuilder(Settings::class)->getMock();
-        $settings->method('getProduct')->willReturn($product);
-
-        $organization = $this->getMockBuilder(Organization::class)->getMock();
-        $organization->method('getSettings')->willReturn($settings);
-
-        return $organization;
-    }
 }