Skip to content

Instantly share code, notes, and snippets.

@ftassi
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ftassi/cd90f85e2b2275be01f0 to your computer and use it in GitHub Desktop.
Save ftassi/cd90f85e2b2275be01f0 to your computer and use it in GitHub Desktop.
Snippet del post "Da TDD a BDD con Symfony2"
default:
paths:
features: features
default:
filters:
tags: "~@tbd"
wip:
filters:
tags: "@wip"
public function cleanDatabase()
{
$container = $this->kernel->getContainer();
$registry = $container->get('doctrine');
$om = $registry->getManager();
$type = 'ORM';
$executorClass = 'Doctrine\\Common\\DataFixtures\\Executor\\' . $type . 'Executor';
$referenceRepository = new ProxyReferenceRepository($om);
$cacheDriver = $om->getMetadataFactory()->getCacheDriver();
if ($cacheDriver) {
$cacheDriver->deleteAll();
}
$connection = $om->getConnection();
if ($connection->getDriver() instanceOf SqliteDriver) {
$params = $connection->getParams();
$name = isset($params['path']) ? $params['path'] : $params['dbname'];
if (!isset(self::$cachedMetadatas)) {
self::$cachedMetadatas = $om->getMetadataFactory()->getAllMetadata();
}
$metadatas = self::$cachedMetadatas;
// TODO: handle case when using persistent connections. Fail loudly?
$schemaTool = new SchemaTool($om);
$schemaTool->dropDatabase($name);
if (!empty($metadatas)) {
$schemaTool->createSchema($metadatas);
}
$executor = new $executorClass($om);
$executor->setReferenceRepository($referenceRepository);
}
$purgerClass = 'Doctrine\\Common\\DataFixtures\\Purger\\' . $type . 'Purger';
$purger = new $purgerClass();
$executor = new $executorClass($om, $purger);
$executor->setReferenceRepository($referenceRepository);
$executor->purge();
return $executor;
}
Given there is a "user1" User in the database
And there are 2 bookable Courts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment