Esempio n. 1
0
 public function setUp()
 {
     static::$kernel = static::createKernel();
     static::$kernel->boot();
     $this->application = new Application(static::$kernel);
     // drop the database
     $command = new DropDatabaseDoctrineCommand();
     $this->application->add($command);
     $input = new ArrayInput(array('command' => 'doctrine:database:drop', '--force' => true));
     $command->run($input, new NullOutput());
     // we have to close the connection after dropping the database so we don't get "No database selected" error
     $connection = $this->application->getKernel()->getContainer()->get('doctrine')->getConnection();
     if ($connection->isConnected()) {
         $connection->close();
     }
     // create the database
     $command = new CreateDatabaseDoctrineCommand();
     $this->application->add($command);
     $input = new ArrayInput(array('command' => 'doctrine:database:create'));
     $command->run($input, new NullOutput());
     // create schema
     $command = new CreateSchemaDoctrineCommand();
     $this->application->add($command);
     $input = new ArrayInput(array('command' => 'doctrine:schema:create'));
     $command->run($input, new NullOutput());
     // get the Entity Manager
     $this->em = static::$kernel->getContainer()->get('doctrine')->getManager();
     // load fixtures
     $client = static::createClient();
     $loader = new \Symfony\Bridge\Doctrine\DataFixtures\ContainerAwareLoader($client->getContainer());
     $loader->loadFromDirectory(static::$kernel->locateResource('@ErlemJobeetBundle/DataFixtures/ORM'));
     $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($this->em);
     $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($this->em, $purger);
     $executor->execute($loader->getFixtures());
 }
 /**
  * {@inheritDoc}
  */
 public static function setUpBeforeClass()
 {
     self::bootKernel();
     $container = static::$kernel->getContainer();
     $em = $container->get('doctrine')->getManager();
     $loader = new \Symfony\Bridge\Doctrine\DataFixtures\ContainerAwareLoader($container);
     $loader->loadFromDirectory(__DIR__ . '/../../DataFixtures/ORM');
     $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($em);
     $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger);
     $executor->execute($loader->getFixtures());
 }
 /**
  * load Fixture.
  *
  * @param array $fixtures optional fixtures location if not set will load all fixtures
  *                        example:
  *                        array(
  *                        "@ExtdevelopmentJobExamBundle/DataFixtures/ORM/LoadCustomerData",
  *                        "@ExtdevelopmentJobExamBundle/DataFixtures/ORM/LoadProductData",
  *                        )
  */
 public function loadFixture(array $fixtures = array())
 {
     if (empty($fixtures)) {
         // load fixture
         $command = new LoadDataFixturesDoctrineCommand();
         $this->application->add($command);
         $input = new ArrayInput(array('command' => 'doctrine:fixtures:load --append'));
         $input->setInteractive(false);
         $command->run($input, new NullOutput());
         return;
     }
     // load fixtures specified location
     $loader = new \Symfony\Bridge\Doctrine\DataFixtures\ContainerAwareLoader(static::$kernel->getContainer());
     foreach ($fixtures as $oneFixture) {
         $loader->loadFromFile(static::$kernel->locateResource($oneFixture . '.php'));
     }
     $purger = new \Doctrine\Common\DataFixtures\Purger\ORMPurger($this->em);
     $executor = new \Doctrine\Common\DataFixtures\Executor\ORMExecutor($this->em, $purger);
     $executor->execute($loader->getFixtures());
 }