faker = Faker\Factory::create('fr'); } public function testNew() { $client = self::createClient( [], TestHelper::getAuthenticatedClientOptions() ); $person = $this->getRandomPerson('Center A'); $crawler = $client->request('GET', '/fr/task/single-task/new', [ 'person_id' => $person->getId(), ]); var_dump($crawler->text()); $this->assertTrue($client->getResponse()->isSuccessful()); $form = $crawler->selectButton('Envoi')->form(); $title = $this->faker->sentence; $circles = $form->get('circle') ->availableOptionsValues(); $client->submit($form, [ 'title' => $title, 'circle' => $circles[array_rand($circles)], ]); $this->assertTrue($client->getResponse()->isRedirect(sprintf( '/fr/task/task/list/%d', $person->getId() ))); $crawler = $client->followRedirect(); $this->assertStringContainsString( $title, $crawler->text(), 'Assert that newly created task title is shown in list page' ); } /** * @param mixed $centerName * * @return \Chill\PersonBundle\Entity\Person */ protected function getRandomPerson($centerName) { $em = self::$kernel ->getContainer() ->get('doctrine.orm.entity_manager'); $centers = $em ->getRepository(Center::class) ->findAll(); $center = array_filter( $centers, static function (Center $c) use ($centerName) { return $c->getName() === $centerName; } )[0]; $ids = $em ->createQuery( 'SELECT p.id FROM ChillPersonBundle:Person p ' . 'WHERE p.center = :center' ) ->setParameter('center', $center) ->getResult(); $id = $ids[array_rand($ids)]; return self::$kernel ->getContainer() ->get('doctrine.orm.entity_manager') ->getRepository(\Chill\PersonBundle\Entity\Person::class) ->find($id); } }