mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Merge branch '245-rewrite-test-relationship-api' into 'master'
Refactor RelationshipApiControllerTest to avoid failures Closes #245 See merge request Chill-Projet/chill-bundles!635
This commit is contained in:
		| @@ -14,6 +14,7 @@ namespace Chill\PersonBundle\Tests\Controller; | ||||
| use Chill\MainBundle\Test\PrepareClientTrait; | ||||
| use Chill\PersonBundle\Entity\Person; | ||||
| use Chill\PersonBundle\Entity\Relationships\Relation; | ||||
| use Chill\PersonBundle\Entity\Relationships\Relationship; | ||||
| use Doctrine\ORM\EntityManagerInterface; | ||||
| use Symfony\Bundle\FrameworkBundle\Test\WebTestCase; | ||||
| use Symfony\Component\HttpFoundation\Request; | ||||
| @@ -43,31 +44,34 @@ final class RelationshipApiControllerTest extends WebTestCase | ||||
|     { | ||||
|         self::bootKernel(); | ||||
|         $em = self::$container->get(EntityManagerInterface::class); | ||||
|         $countPersons = $em->createQueryBuilder() | ||||
|             ->select('count(p)') | ||||
|             ->from(Person::class, 'p') | ||||
|             ->join('p.centerCurrent', 'center_current') | ||||
|             ->join('center_current.center', 'c') | ||||
|             ->where('c.name LIKE :name') | ||||
|             ->setParameter('name', 'Center A') | ||||
|             ->getQuery() | ||||
|             ->getSingleScalarResult(); | ||||
|         $person = $em->createQueryBuilder() | ||||
|             ->select('p') | ||||
|         $personIdHavingRelation = $em->createQueryBuilder() | ||||
|             ->select('p.id') | ||||
|             ->from(Person::class, 'p') | ||||
|             ->join('p.centerCurrent', 'center_current') | ||||
|             ->join('center_current.center', 'c') | ||||
|             ->where('c.name LIKE :name') | ||||
|             ->andWhere('EXISTS (SELECT 1 FROM ' . Relationship::class . ' r WHERE r.fromPerson = p OR r.toPerson = p)') | ||||
|             ->setParameter('name', 'Center A') | ||||
|             ->getQuery() | ||||
|             ->setMaxResults(1) | ||||
|             ->setFirstResult(\random_int(0, $countPersons - 1)) | ||||
|             ->getSingleResult(); | ||||
|             ->getSingleScalarResult(); | ||||
|  | ||||
|         $personIdWithoutRelation = $em->createQueryBuilder() | ||||
|             ->select('p.id') | ||||
|             ->from(Person::class, 'p') | ||||
|             ->join('p.centerCurrent', 'center_current') | ||||
|             ->join('center_current.center', 'c') | ||||
|             ->where('c.name LIKE :name') | ||||
|             ->andWhere('NOT EXISTS (SELECT 1 FROM ' . Relationship::class . ' r WHERE r.fromPerson = p OR r.toPerson = p)') | ||||
|             ->setParameter('name', 'Center A') | ||||
|             ->getQuery() | ||||
|             ->setMaxResults(1) | ||||
|             ->getSingleScalarResult(); | ||||
|  | ||||
|         self::ensureKernelShutdown(); | ||||
|  | ||||
|         return [ | ||||
|             [$person->getId()], | ||||
|             [$personIdHavingRelation, $personIdWithoutRelation], | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
| @@ -75,39 +79,29 @@ final class RelationshipApiControllerTest extends WebTestCase | ||||
|     { | ||||
|         self::bootKernel(); | ||||
|         $em = self::$container->get(EntityManagerInterface::class); | ||||
|         $countPersons = $em->createQueryBuilder() | ||||
|             ->select('count(DISTINCT p)') | ||||
|             ->from(Person::class, 'p') | ||||
|             ->join('p.centerCurrent', 'center_current') | ||||
|             ->join('center_current.center', 'c') | ||||
|             ->where('c.name LIKE :name') | ||||
|             ->setParameter('name', 'Center A') | ||||
|             ->getQuery() | ||||
|             ->getSingleScalarResult(); | ||||
|  | ||||
|         $persons = $em->createQueryBuilder() | ||||
|             ->select('p') | ||||
|         $personIdWithoutRelations = $em->createQueryBuilder() | ||||
|             ->select('p.id') | ||||
|             ->from(Person::class, 'p') | ||||
|             ->join('p.centerCurrent', 'center_current') | ||||
|             ->join('center_current.center', 'c') | ||||
|             ->where('c.name LIKE :name') | ||||
|             ->andWhere('NOT EXISTS (SELECT 1 FROM ' . Relationship::class . ' r WHERE r.fromPerson = p OR r.toPerson = p)') | ||||
|             ->setParameter('name', 'Center A') | ||||
|             ->getQuery() | ||||
|             ->setMaxResults(2) | ||||
|             ->setFirstResult(\random_int(0, $countPersons - 1)) | ||||
|             ->getResult(); | ||||
|  | ||||
|         self::ensureKernelShutdown(); | ||||
|  | ||||
|         return [ | ||||
|             [$persons[0]->getId(), $persons[1]->getId(), $this->getRandomRelation($em)->getId(), true], | ||||
|             [$personIdWithoutRelations[0]['id'], $personIdWithoutRelations[1]['id'], $this->getRandomRelation($em)->getId(), true], | ||||
|         ]; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @dataProvider personProvider | ||||
|      */ | ||||
|     public function testGetRelationshipByPerson(mixed $personId) | ||||
|     public function testGetRelationshipByPerson(int $personId) | ||||
|     { | ||||
|         self::ensureKernelShutdown(); | ||||
|         $client = $this->getClientAuthenticated(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user