Ver Fonte

restore unit tests after 10.4 upgrade

Olivier Massot há 4 anos atrás
pai
commit
2fd16c76f4

+ 6 - 1
ot_core/Readme.md

@@ -18,6 +18,11 @@ pas être modifié si aucune autre extension n'est installée
 
 ### Pour lancer les tests unitaires:
 
-Lancer dans la console:
+Pour installer ou mettre à jour l'environnement de test (situé dans le dossier .Build), se placer dans le 
+répertoire de l'extension, et lancer:
+
+    composer install
+
+Pour lancer les tests:
 
     .Build/bin/phpunit --coverage-clover=unittest-coverage.clover -c Tests/Build/UnitTests.xml

+ 0 - 25
ot_core/Tests/Unit/Domain/Model/MemberTest.php

@@ -29,14 +29,6 @@ class MemberTest extends UnitTestCase
         $member->setMission('mission');
         $member->setPersonId(3);
         $member->setImage('image');
-        $member->setAddressCity('city');
-        $member->setStreetAddress('street');
-        $member->setStreetAddressSecond('address2');
-        $member->setStreetAddressThird('address3');
-        $member->setPostalCode('00000');
-        $member->setTelphone('0101010101');
-        $member->setMobilPhone('0601010101');
-        $member->setEmail('mail@domain.com');
 
         $this->assertEquals(1, $member->getId());
         $this->assertEquals(2, $member->getOrganizationId());
@@ -50,15 +42,6 @@ class MemberTest extends UnitTestCase
         $this->assertEquals('mission', $member->getMission());
         $this->assertEquals(3, $member->getPersonId());
         $this->assertEquals('image', $member->getImage());
-        $this->assertEquals('city', $member->getAddressCity());
-        $this->assertEquals('street', $member->getStreetAddress());
-        $this->assertEquals('address2', $member->getStreetAddressSecond());
-        $this->assertEquals('address3', $member->getStreetAddressThird());
-        $this->assertEquals('address3', $member->getStreetAddressThird());
-        $this->assertEquals('00000', $member->getPostalCode());
-        $this->assertEquals('0101010101', $member->getTelphone());
-        $this->assertEquals('0601010101', $member->getMobilPhone());
-        $this->assertEquals('mail@domain.com', $member->getEmail());
     }
 
     /**
@@ -95,14 +78,6 @@ class MemberTest extends UnitTestCase
         $member->setInstrument(null);
         $member->setMission(null);
         $member->setImage(null);
-        $member->setAddressCity(null);
-        $member->setStreetAddress(null);
-        $member->setStreetAddressSecond(null);
-        $member->setStreetAddressThird(null);
-        $member->setPostalCode(null);
-        $member->setTelphone(null);
-        $member->setMobilPhone(null);
-        $member->setEmail(null);
 
         // Just to avoid this test to be considered as risky
         $this->assertEquals(1, 1);

+ 1 - 1
ot_core/Tests/Unit/Domain/Repository/AbstractApiRepositoryTestCase.php

@@ -62,7 +62,7 @@ abstract class AbstractApiRepositoryTestCase extends UnitTestCase
         // mock the Guzzle client
         $willReturn = $this->fixture->get($uri);
         $client = $this->prophesize(Client::class);
-        $client->request($http_method, $uri)
+        $client->request($http_method, $uri, [])
             ->shouldBeCalled()
             ->willReturn($willReturn);
 

+ 7 - 2
ot_core/Tests/Unit/Fixtures/ApiResponseFixtures.php

@@ -44,8 +44,10 @@ class ApiResponseFixtures
                     "longitude": 1.2345,
                     "country": "France",
                     "logo": "https://api.opentalent.fr/_internal/secure/files/1",
+                    "parentId": 1,
                     "parentName": "Network",
-                    "parentSubDomain": "network"
+                    "parentSubDomain": "network",
+                    "publicationDirectors": ""
                 }],
         "hydra:search": {}
         }',
@@ -142,6 +144,7 @@ class ApiResponseFixtures
                     "name": "De Saint-Marcellin",
                     "startDate": "2010-01-01T00:00:00+00:00",
                     "endDate": null,
+                    "mission": "STUDENT",
                     "instrumentGroup": "OBOE",
                     "instrument": "OBOE",
                     "personId": 4,
@@ -160,6 +163,7 @@ class ApiResponseFixtures
      * @var string[]
      */
     private $map = [
+        'api/public/organizations' => 'stub',
         'api/public/organizations?_format=json' => 'stub',
         'api/public/organizations?_format=json&itemsPerPage=10&foo=1' => 'stub',
         'api/public/organizations?_format=json&itemsPerPage=8' => 'stub',
@@ -182,7 +186,8 @@ class ApiResponseFixtures
         'api/public/members_ca?_format=json&filter%5Bwhere%5D%5BorganizationId%5D=1&itemsPerPage=200' => 'member'
     ];
 
-    public function get($url) {
+    public function get($url): HtmlResponse
+    {
         foreach ($this->map as $needle => $response_key) {
             if (str_ends_with($url, $needle))
             {

+ 2 - 2
ot_core/Tests/Unit/Fixtures/PageFixtures.php

@@ -69,7 +69,7 @@ class PageFixtures
      *                 ->fetch();
      *
      * @param $pageUid
-     * @return array|mixed|null
+     * @return array
      */
     public function getByUid(int $pageUid) {
         foreach ($this->pages as $page) {
@@ -77,7 +77,7 @@ class PageFixtures
                 return $page;
             }
         }
-        return null;
+        return [];  // Typo3 PageRespository returns an empty array when page does not exists
     }
 
     /**

+ 13 - 16
ot_core/Tests/Unit/Service/OpentalentApiServiceTest.php

@@ -39,19 +39,19 @@ class OpentalentApiServiceTest extends UnitTestCase
         $this->fixture = new ApiResponseFixtures();
     }
 
-    protected function injectClientFor($uri, $http_method='GET') {
+    protected function injectClientFor($uri, $http_method='GET', $params = []) {
         // mock the Guzzle client
         $client = $this->prophesize(Client::class);
         try {
             $willReturn = $this->fixture->get($uri);
-            $client->request($http_method, $uri)
+            $client->request($http_method, $uri, Argument::any())
                 ->shouldBeCalled()
                 ->willReturn($willReturn);
 
         } catch (\RuntimeException $e) {
-            $client->request($http_method, Argument::type('string'))
+            $client->request($http_method, Argument::type('string'), [])
                 ->shouldBeCalled()
-                ->willThrow(new \GuzzleHttp\Exception\TransferException('error'));
+                ->willThrow(new \GuzzleHttp\Exception\TransferException('bad prophecy request'));
         }
 
         $reflectionObject = new \ReflectionObject($this->service);
@@ -70,12 +70,12 @@ class OpentalentApiServiceTest extends UnitTestCase
     public function get() {
 
         $base_uri = "api/public/organizations";
-        $params = ['itemsPerPage' => 10, 'foo' => 1];
+        $params = ['_format' => 'json', 'itemsPerPage' => 10, 'foo' => 1];
 
         // uri as it is supposed to be processed by the repo
         $processed_uri = $base_uri . "?_format=json&itemsPerPage=10&foo=1";
 
-        $this->injectClientFor($processed_uri);
+        $this->injectClientFor($processed_uri, 'GET', $params);
         $actual = $this->service->request('GET', $base_uri, $params);
 
         $this->assertEquals(200, $actual->getStatusCode());
@@ -92,10 +92,7 @@ class OpentalentApiServiceTest extends UnitTestCase
         $base_uri = "api/public/organizations";
         $params = [];
 
-        // uri as it is supposed to be processed by the repo
-        $processed_uri = $base_uri . "?_format=json";
-
-        $this->injectClientFor($processed_uri);
+        $this->injectClientFor($base_uri, 'GET', $params);
         $actual = $this->service->request('GET', $base_uri, $params);
 
         $this->assertEquals(200, $actual->getStatusCode());
@@ -112,13 +109,13 @@ class OpentalentApiServiceTest extends UnitTestCase
         $base_uri = "a very bad uri";
         $params = [];
 
-        $this->injectClientFor($base_uri);
+        $this->injectClientFor($base_uri, 'GET', $params);
 
         try {
             $res = $this->service->request('GET', $base_uri, $params);
             throw new \AssertionError("An ApiRequestException should have been thrown");
         } catch (ApiRequestException $e) {
-            $this->assertEquals('error', $e->getMessage());
+            $this->assertEquals('bad prophecy request', $e->getMessage());
         }
     }
 
@@ -130,12 +127,12 @@ class OpentalentApiServiceTest extends UnitTestCase
     public function getBody() {
 
         $base_uri = "api/public/organizations";
-        $params = ['itemsPerPage' => 10, 'foo' => 1];
+        $params = ['_format' => 'json', 'itemsPerPage' => 10, 'foo' => 1];
 
         // uri as it is supposed to be processed by the repo
         $processed_uri = $base_uri . "?_format=json&itemsPerPage=10&foo=1";
 
-        $this->injectClientFor($processed_uri);
+        $this->injectClientFor($processed_uri, 'GET', $params);
         $actual = $this->service->getBody($base_uri, $params);
 
         $this->assertEquals('{"@context": "/api/contexts/PortailOrganization"}', $actual);
@@ -149,12 +146,12 @@ class OpentalentApiServiceTest extends UnitTestCase
     public function getJsonDecoded() {
 
         $base_uri = "api/public/organizations";
-        $params = ['itemsPerPage' => 10, 'foo' => 1];
+        $params = ['_format' => 'json', 'itemsPerPage' => 10, 'foo' => 1];
 
         // uri as it is supposed to be processed by the repo
         $processed_uri = $base_uri . "?_format=json&itemsPerPage=10&foo=1";
 
-        $this->injectClientFor($processed_uri);
+        $this->injectClientFor($processed_uri, 'GET', $params);
         $actual = $this->service->getJsonDecoded($base_uri, $params);
 
         $this->assertEquals(["@context" => "/api/contexts/PortailOrganization"], $actual);

+ 1 - 0
ot_core/Tests/Unit/Website/OtPageRepositoryTest.php

@@ -119,6 +119,7 @@ class OtPageRepositoryTest extends UnitTestCase
         $page = $this->pageFixtures->getByUid($page_uid);
 
         $this->pageRepository->getPage($page_uid, true)->shouldBeCalled()->willReturn($page);
+        $this->pageRepository->getPage(0, true)->shouldBeCalled()->willReturn([]);
         $this->injectProphecies();
 
         // Test

+ 4 - 5
ot_core/composer.json

@@ -9,12 +9,11 @@
         }
     ],
     "require": {
-        "typo3/cms-core": "^9.5 || ^10.4",
-        "fluidtypo3/vhs": "^6",
-        "fluidtypo3/flux": "^9",
-        "fluidtypo3/fluidpages": "^5",
+        "typo3/cms-core": "^10.4",
+        "fluidtypo3/vhs": "^6.0",
+        "fluidtypo3/flux": "^9.5",
         "guzzlehttp/guzzle": "^6",
-        "nimut/typo3-complete": "9.5",
+        "nimut/typo3-complete": "10.4",
         "nimut/testing-framework": "^5.2"
     },
     "replace": {