client = $this->getClientAuthenticated(); } public function testNewWithoutUsers() { $this->client->request('GET', '/fr/person/parcours/new'); $this->assertResponseRedirects(); $location = $this->client->getResponse()->headers->get('Location'); $this->assertEquals(1, \preg_match("|^\/[^\/]+\/parcours/([\d]+)/edit$|", $location)); } /** * @dataProvider dataGenerateRandomUsers */ public function testWithNewUsers($personId0, $personId1) { $this->client->request('GET', '/fr/person/parcours/new', [ 'person_id' => [ $personId0, $personId1 ] ]); $this->assertResponseRedirects(); $location = $this->client->getResponse()->headers->get('Location'); $matches = []; $this->assertEquals(1, \preg_match("|^\/[^\/]+\/parcours/([\d]+)/edit$|", $location, $matches)); $id = $matches[1]; $period = self::$container->get(EntityManagerInterface::class) ->getRepository(AccompanyingPeriod::class) ->find($id); $this->assertNotNull($period); $this->assertEquals(2, count($period->getParticipations())); } public function dataGenerateRandomUsers(): \Iterator { self::bootKernel(); $em = self::$container->get(EntityManagerInterface::class); $period = new AccompanyingPeriod(new \DateTime('1 week ago')); $user = $em->getRepository(User::class) ->findOneByUsernameCanonical('center a_social'); $period->setCreatedBy($user); //$period->setCreatedAt(new \DateTime('yesterday')); $center = $em->getRepository(Center::class) ->findOneBy(array('name' => 'Center A')); $personIds = $em->createQuery("SELECT p.id FROM ". Person::class." p ". " WHERE p.center = :center") ->setParameter('center', $center) ->setMaxResults(100) ->getScalarResult(); yield [ \array_pop($personIds), \array_pop($personIds) ]; } }