client = $this->getClientAuthenticated(); } /** * @dataProvider generateValidHouseholdIds */ public function testSummary($householdId) { $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/summary" ); $this->assertResponseIsSuccessful(); } /** * @dataProvider generateValidHouseholdIds */ public function testEditMetadata($householdId) { $crawler = $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/summary", [ 'edit' => true ] ); $this->assertResponseIsSuccessful(); $form = $crawler->selectButton('Enregistrer') ->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 */ public function testAddresses($householdId) { $this->client->request( Request::METHOD_GET, "/fr/person/household/{$householdId}/addresses" ); $this->assertResponseIsSuccessful(); } /** * @dataProvider generateValidHouseholdIds */ 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 } 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'] ]; } }