diff --git a/tests/Entity/ProjectApi/GetAllTest.php b/tests/Entity/ProjectApi/GetAllTest.php index 16bd094..e33591a 100644 --- a/tests/Entity/ProjectApi/GetAllTest.php +++ b/tests/Entity/ProjectApi/GetAllTest.php @@ -42,16 +42,17 @@ class GetAllTest extends ApiTestCase ]); } - private function createTestProjectOptimized(int $count) + private function createTestProjectOptimized(int $count, array $attributes = []) { $owner = $this->createTestUser(); $territory = new ProjectTerritory('ES'); - // It passes an attributes already created because memory management is critical here - ProjectFactory::createMany($count, [ + $mergedAttributes = array_merge([ 'owner' => $owner, 'territory' => $territory, - ]); + ], $attributes); + + ProjectFactory::createMany($count, $mergedAttributes); } private function getHeaders(Client $client) @@ -145,6 +146,28 @@ class GetAllTest extends ApiTestCase $this->entityManager->clear(); } + public function testGetAllByTitle() + { + $title = 'Free Software Project'; + $owner = $this->createTestUser(); + $territory = new ProjectTerritory('ES'); + $baseAttributes = [ + 'owner' => $owner, + 'territory' => $territory, + ]; + $searchCount = 2; + ProjectFactory::createMany($searchCount, array_merge(['title' => $title], $baseAttributes)); + ProjectFactory::createOne(array_merge(['title' => 'Educational Project'], $baseAttributes)); + + $client = static::createClient(); + $client->request(self::METHOD, self::BASE_URI."?title=$title", $this->getHeaders($client)); + + $this->assertResponseIsSuccessful(); + + $responseData = json_decode($client->getResponse()->getContent(), true); + $this->assertCount($searchCount, $responseData['member']); + } + public function testGetAllUnauthorized(): void { static::createClient()->request(self::METHOD, self::BASE_URI);