Skip to content

Instantly share code, notes, and snippets.

@stivni
Last active September 30, 2015 08:16
Show Gist options
  • Save stivni/b2157f007116f1d9c7c1 to your computer and use it in GitHub Desktop.
Save stivni/b2157f007116f1d9c7c1 to your computer and use it in GitHub Desktop.
MySqlTestCase
doctrine:
dbal:
driver: pdo_mysql
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
charset: UTF8
orm:
auto_generate_proxy_classes: "%kernel.debug%"
entity_managers:
default:
connection: default
auto_mapping: false
mappings:
Domain:
type: annotation
dir: %kernel.root_dir%/../src/Domain
prefix: Domain
is_bundle: false
<?php
namespace TimeTracker\ProjectsBundle\Tests\Repository;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\Tools\SchemaTool;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\HttpKernel\Kernel;
class MySqlTest extends WebTestCase
{
protected static $kernel;
/**
* @var EntityManager
*/
protected $entityManager;
/**
* @return ContainerInterface
*/
protected function getContainer()
{
return $this->getKernel()->getContainer();
}
/**
* @return Kernel
*/
protected function getKernel()
{
if (!isset(self::$kernel)) {
self::$kernel = static::createKernel(
array(
'environment' => 'test'
)
);
self::$kernel->boot();
}
return self::$kernel;
}
protected function setUp()
{
parent::setUp();
$this->entityManager = $this->getContainer()->get('doctrine.orm.default_entity_manager');
$this->entityManager->getConnection()->beginTransaction();
$classes = $this->entityManager->getMetadataFactory()->getAllMetadata();
$schemaTool = new SchemaTool($this->entityManager);
$schemaTool->dropSchema($classes);
$schemaTool->createSchema($classes);
}
/**
* Clean up Kernel usage in this test.
*/
protected function tearDown()
{
$this->entityManager->getConnection()->rollBack();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment