client = $this->getClientAuthenticated(); } public function generateValidHouseholdIds() { self::bootKernel(); $em = self::$container->get(EntityManagerInterface::class); $ids = $em->createQuery( 'SELECT DISTINCT h.id FROM ' . Household::class . ' h ' . 'JOIN h.members m ' . 'JOIN m.person p ' . 'JOIN p.center c ' . 'WHERE c.name = :center' ) ->setParameter('center', 'Center A') ->setMaxResults(100) ->getScalarResult(); shuffle($ids); yield [array_pop($ids)['id']]; yield [array_pop($ids)['id']]; yield [array_pop($ids)['id']]; } /** * @dataProvider generateValidHouseholdIds * * @param mixed $householdId */ public function testAddresses($householdId) { $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/addresses" ); $this->assertResponseIsSuccessful(); } /** * @dataProvider generateValidHouseholdIds * * @param mixed $householdId */ public function testAddressMove($householdId) { $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/address/move" ); $this->assertResponseIsSuccessful(); // ici, il faudrait tester la requĂȘte POST } /** * @dataProvider generateValidHouseholdIds * * @param mixed $householdId */ public function testEditMetadata($householdId) { $crawler = $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/summary", [ 'edit' => true, ] ); $this->assertResponseIsSuccessful(); $form = $crawler->filter('#form_household_comment_confirm') ->form(); $form['household[commentMembers][comment]'] = 'This is a text **generated** by automatic tests'; $form['household[waitingForBirth]']->tick(); $form['household[waitingForBirthDate]'] = (new DateTime('today')) ->add(new DateInterval('P1M'))->format('Y-m-d'); $this->client->submit($form); $this->assertResponseRedirects("/fr/person/household/{$householdId}/summary"); } /** * @dataProvider generateValidHouseholdIds * * @param mixed $householdId */ public function testSummary($householdId) { $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/summary" ); $this->assertResponseIsSuccessful(); } }