Skip to content

Instantly share code, notes, and snippets.

@Raistlfiren
Created February 2, 2016 22:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Raistlfiren/f1867a3a18d5bd5319a2 to your computer and use it in GitHub Desktop.
Save Raistlfiren/f1867a3a18d5bd5319a2 to your computer and use it in GitHub Desktop.
<?php
namespace CoreBundle\Library;
use Doctrine\Common\DataFixtures\Executor\ORMExecutor;
use Doctrine\Common\DataFixtures\Loader;
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
use Doctrine\ORM\Tools\SchemaTool;
use UserBundle\DataFixtures\ORM\LoadUserData;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
abstract class AbstractControllerTest extends WebTestCase
{
/** @var \Symfony\Bundle\FrameworkBundle\Client $_client */
public $client;
public function setUp()
{
$this->client = static::createClient();
}
public function createAuthorizedClient($fixtures = [])
{
$container = $this->client->getContainer();
$doctrine = $container->get('doctrine');
$em = $doctrine->getManager();
$schemaTool = new SchemaTool($em);
$metadata = $em->getMetaDataFactory()->getAllMetadata();
// Drop and recreate tables for all entities
$schemaTool->dropSchema($metadata);
$schemaTool->createSchema($metadata);
$loader = new Loader();
$user = new LoadUserData();
$user->setContainer($container);
$loader->addFixture($user);
foreach ($fixtures as $fixture) {
$loader->addFixture($fixture);
}
$purger = new ORMPurger();
$executor = new ORMExecutor($em, $purger);
$executor->execute($loader->getFixtures());
$session = $container->get('session');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment