client = static::createClient(); // $this->client->disableReboot(); // uncomment when using prophecy to mock services self::reloadDoctrineFixtures(); } protected function reloadDoctrineFixtures() { // we need our fixtures to be stateless, so remove everything and recreate to get the same // index values all along the tests self::runCommand('doctrine:schema:drop --force -n'); self::runCommand('doctrine:schema:create -n'); self::runCommand('doctrine:migration:migrate -n'); self::runCommand('doctrine:fixtures:load --purge-with-truncate -n'); } protected function runCommand($command) { $application = new Application($this->client->getKernel()); $application->setAutoExit(false); return $application->run(new StringInput($command), new NullOutput()); } protected function createRequestBuilder(string $acceptType = 'application/json'): ClientRequestBuilder { $builder = new ClientRequestBuilder($this->client); $builder->setAcceptType($acceptType); return $builder; } protected function retrieveEntityManager(): EntityManagerInterface { return $this->client->getContainer()->get('doctrine.orm.entity_manager'); } }