Browse Source

Merge branch 'feature/repair_ci' into develop

Olivier Massot 2 năm trước cách đây
mục cha
commit
f99990305f

+ 3 - 1
.gitlab-ci.yml

@@ -6,6 +6,8 @@ variables:
   SSH_PRIVATE_KEY: $SSH_PRIVATE_KEY
 
 before_script:
+  # /!\ Attention: la configuration du SSH est indispensable pour pouvoir cloner notre repo foselastica
+  # Install packages
   - apt-get -yqq update
   - apt-get -yqq install zip unzip git openssh-client
 
@@ -33,7 +35,7 @@ unit:
   stage: test
 
   script:
-    - php composer.phar --no-interaction --quiet install
+    - php composer.phar install --no-interaction --ignore-platform-reqs
     - php bin/phpunit --configuration phpunit.xml.dist --colors=never --no-interaction
 
   artifacts:

+ 22 - 8
tests/Service/ApiLegacy/ApiLegacyRequestServiceTest.php

@@ -3,7 +3,9 @@
 namespace App\Tests\Service\ApiLegacy;
 
 use App\Entity\Access\Access;
+use App\Entity\Person\Person;
 use App\Service\ApiLegacy\ApiLegacyRequestService;
+use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Symfony\Component\Security\Core\Authentication\Token\NullToken;
@@ -17,11 +19,13 @@ class ApiLegacyRequestServiceTest extends TestCase
 {
     private HttpClientInterface $apiLegacyClient;
     private Security $security;
+    private JWTTokenManagerInterface $jwtManager;
 
     public function setUp(): void
     {
         $this->apiLegacyClient = $this->getMockBuilder(HttpClientInterface::class)->disableOriginalConstructor()->getMock();
         $this->security = $this->getMockBuilder(Security::class)->disableOriginalConstructor()->getMock();
+        $this->jwtManager = $this->getMockBuilder(JWTTokenManagerInterface::class)->disableOriginalConstructor()->getMock();
     }
 
     /**
@@ -31,22 +35,27 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 
+        $person = $this->getMockBuilder(Person::class)->disableOriginalConstructor()->getMock();
+
         $user = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
         $user->method('getId')->willReturn(1);
+        $user->method('getPerson')->willReturn($person);
 
         $token = $this->getMockBuilder(UsernamePasswordToken::class)->disableOriginalConstructor()->getMock();
         $token->method('getUser')->willReturn($user);
 
         $this->security->method('getToken')->willReturn($token);
 
-        $_REQUEST['BEARER'] = '123';
+        $this->jwtManager->method('create')->with($person)->willReturn('XYZ');
+
+        $_REQUEST['BEARER'] = 'XYZ';
         $expectedHeaders = [
             'custom' => 'foo',
-            'authorization' => 'BEARER 123',
+            'authorization' => 'BEARER XYZ',
             'Accept' => '*/*',
             'Charset' => 'UTF-8',
             'Accept-Encoding' => 'gzip, deflate, br',
@@ -77,7 +86,7 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 
@@ -96,7 +105,7 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 
@@ -117,7 +126,7 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 
@@ -139,15 +148,18 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 
         $user = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
         $user->method('getId')->willReturn(10);
 
+        $person = $this->getMockBuilder(Person::class)->disableOriginalConstructor()->getMock();
+
         $originalUser = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
         $originalUser->method('getId')->willReturn(20);
+        $originalUser->method('getPerson')->willReturn($person);
 
         $originalToken = $this->getMockBuilder(SwitchUserToken::class)->disableOriginalConstructor()->getMock();
         $originalToken->method('getUser')->willReturn($originalUser);
@@ -158,6 +170,8 @@ class ApiLegacyRequestServiceTest extends TestCase
 
         $this->security->method('getToken')->willReturn($token);
 
+        $this->jwtManager->method('create')->with($person)->willReturn('123');
+
         $_REQUEST['BEARER'] = '123';
 
         $expectedHeaders = [
@@ -188,7 +202,7 @@ class ApiLegacyRequestServiceTest extends TestCase
     {
         $api1RequestService = $this
             ->getMockBuilder(ApiLegacyRequestService::class)
-            ->setConstructorArgs([$this->apiLegacyClient, $this->security])
+            ->setConstructorArgs([$this->apiLegacyClient, $this->security, $this->jwtManager])
             ->setMethodsExcept(['request'])
             ->getMock();
 

+ 1 - 4
tests/Service/Cron/Job/CleanTempFilesTest.php

@@ -7,21 +7,18 @@ use App\Repository\Access\AccessRepository;
 use App\Repository\Core\FileRepository;
 use App\Service\Cron\Job\CleanTempFiles;
 use App\Service\Cron\UI\CronUIInterface;
-use App\Service\Storage\LocalStorage;
+use App\Service\File\Storage\LocalStorage;
 use App\Service\Utils\DatesUtils;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\Common\Collections\Collection;
 use Doctrine\Common\Collections\Criteria;
 use Doctrine\ORM\AbstractQuery;
 use Doctrine\ORM\EntityManagerInterface;
-use Doctrine\ORM\Query;
 use Doctrine\ORM\Query\Expr;
 use Doctrine\ORM\QueryBuilder;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Psr\Log\LoggerInterface;
-use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
-use Symfony\Contracts\Service\Attribute\Required;
 
 class TestableCleanTempFile extends CleanTempFiles {
     public function listFilesToDelete(): Collection { return parent::listFilesToDelete(); }

+ 7 - 1
tests/Service/OnChange/Organization/OnSubdomainChangeTest.php

@@ -13,6 +13,7 @@ use App\Service\OnChange\Organization\OnSubdomainChange;
 use App\Service\Organization\Utils as OrganizationUtils;
 use App\Service\Typo3\BindFileService;
 use Doctrine\Common\Collections\ArrayCollection;
+use Doctrine\ORM\EntityManagerInterface;
 use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 use Symfony\Component\Messenger\Envelope;
@@ -25,6 +26,7 @@ class OnSubdomainChangeTest extends TestCase
     private Security $security;
     private BindFileService $bindFileService;
     private MessageBusInterface $messageBus;
+    private EntityManagerInterface $entityManager;
 
     public function setUp():void
     {
@@ -32,11 +34,12 @@ class OnSubdomainChangeTest extends TestCase
         $this->security = $this->getMockBuilder(Security::class)->disableOriginalConstructor()->getMock();
         $this->bindFileService = $this->getMockBuilder(BindFileService::class)->disableOriginalConstructor()->getMock();
         $this->messageBus = $this->getMockBuilder(MessageBusInterface::class)->disableOriginalConstructor()->getMock();
+        $this->entityManager = $this->getMockBuilder(EntityManagerInterface::class)->disableOriginalConstructor()->getMock();
     }
 
     private function makeOnSubdomainChangeMock(string $methodName): MockObject | OnSubdomainChange {
         return $this->getMockBuilder(OnSubdomainChange::class)
-            ->setConstructorArgs([$this->organizationUtils, $this->bindFileService, $this->messageBus, $this->security])
+            ->setConstructorArgs([$this->organizationUtils, $this->bindFileService, $this->messageBus, $this->security, $this->entityManager])
             ->setMethodsExcept([$methodName])
             ->getMock();
     }
@@ -139,6 +142,7 @@ class OnSubdomainChangeTest extends TestCase
         $this->bindFileService->expects(self::never())->method('registerSubdomain');
         $this->messageBus->expects(self::never())->method('dispatch');
         $onSubdomainChange->expects(self::never())->method('sendEmailAfterSubdomainChange');
+        $this->entityManager->expects(self::never())->method('refresh');
 
         $subdomain = $this->getMockBuilder(Subdomain::class)->disableOriginalConstructor()->getMock();
         $context = $this->getMockBuilder(OnChangeContext::class)->disableOriginalConstructor()->getMock();
@@ -179,6 +183,8 @@ class OnSubdomainChangeTest extends TestCase
         $context->method('isPutRequest')->willReturn(true);
         $context->method('isPostRequest')->willReturn(false);
 
+        $this->entityManager->expects(self::once())->method('refresh')->with($organization);
+
         $onSubdomainChange->onChange($subdomain, $context);
     }