/** @test */ public function should_find_group_by_slug() { $this->executor->execute($this->loader->getFixtures()); $group = $this->repository->groupOfSlug('cribbb'); $this->assertInstanceOf('Cribbb\\Domain\\Model\\Groups\\Group', $group); $this->assertEquals('cribbb', $group->slug()); }
/** @test */ public function should_find_post_by_id() { $this->executor->execute($this->loader->getFixtures()); $post = $this->repository->threadOfId(PostId::fromString('d16f9fe7-e947-460e-99f6-2d64d65f46bc')); $this->assertInstanceOf('Cribbb\\Domain\\Model\\Discussion\\Post', $post); $this->assertEquals('d16f9fe7-e947-460e-99f6-2d64d65f46bc', $post->id()); }
/** * @param FixtureInterface[] $fixtures * @param string $mode */ public function load(array $fixtures, $mode = self::MODE_APPEND) { $append = $this->isAppendMode($mode); if (!$append) { $this->executor->setPurger($this->purger); } $this->executor->execute($this->getLoadedFixtures($fixtures), $append); }
/** @test */ public function should_update_existing_user() { $this->executor->execute($this->loader->getFixtures()); $user = $this->repository->userOfUsername(new Username('username')); $username = new Username('new_username'); $user->updateUsername($username); $this->repository->update($user); $this->em->clear(); $user = $this->repository->userOfUsername($username); $this->assertInstanceOf('Cribbb\\Domain\\Model\\Identity\\User', $user); $this->assertEquals($username, $user->username()); }
public function adminRefreshDatabaseAction(Request $request, Application $app) { $conn = $app['db']; $em = $app['doctrine.orm.entity_manager']; $params = $conn->getParams(); $name = isset($params['path']) ? $params['path'] : (isset($params['dbname']) ? $params['dbname'] : false); try { $conn->getSchemaManager()->dropDatabase($name); $conn->getSchemaManager()->createDatabase($name); $conn->close(); } catch (\Exception $e) { return 1; } $classes = []; foreach ($app['authbucket_oauth2.model'] as $class) { $classes[] = $em->getClassMetadata($class); } PersistentObject::setObjectManager($em); $tool = new SchemaTool($em); $tool->dropSchema($classes); $tool->createSchema($classes); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../DataFixtures/ORM'); $executor->execute($loader->getFixtures()); return $app->redirect($app['url_generator']->generate('index')); }
/** * Initializes the database (once). * * @throws \Doctrine\DBAL\DBALException * @throws \Doctrine\ORM\ORMException * @throws \Doctrine\ORM\Tools\ToolsException */ protected function setUp() { if (null === static::$_conn) { $dbPath = __DIR__ . '/../../../db.sqlite'; if (file_exists($dbPath)) { unlink($dbPath); } $params = ['driver' => 'pdo_sqlite', 'path' => $dbPath]; static::$_conn = DriverManager::getConnection($params); static::$_conn->getConfiguration()->setSQLLogger(null); } if (null === static::$_em) { $paths = [__DIR__ . '/../../../../../src/Ekyna/Commerce/Bridge/Doctrine/ORM/Resources/mapping']; $isDevMode = true; $config = Setup::createXMLMetadataConfiguration($paths, $isDevMode); $em = EntityManager::create(static::$_conn, $config); $classes = []; foreach (static::$_classes as $class) { array_push($classes, $em->getClassMetadata($class)); } $schemaTool = new SchemaTool($em); $schemaTool->dropSchema($classes); $schemaTool->createSchema($classes); // Load fixtures $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../../../../../src/Ekyna/Commerce/Bridge/Doctrine/Fixtures'); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->execute($loader->getFixtures()); static::$_em = $em; } }
/** * {@inheritDoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $app = $this->getApplication()->getApp(); $em = $app['em']; $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = isset($app['em.fixtures']) ? $app['em.fixtures'] : array(); } $loader = new Loader(); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $purger->setPurgeMode($input->getOption('purge-with-truncate') ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
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()); //"no database selected" error $connection = $this->application->getKernel()->getContainer()->get('doctrine')->getConnection(); if ($connection->isConnected()) { $connection->close(); } //create 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 entity manager $this->em = static::$kernel->getContainer()->get('doctrine')->getManager(); //load fixtures; $client = static::createClient(); $loader = new ContainerAwareLoader($client->getContainer()); $loader->loadFromDirectory(static::$kernel->locateResource('@IbwJobeetBundle/DataFixtures/ORM')); $purger = new ORMPurger($this->em); $executor = new ORMExecutor($this->em, $purger); $executor->execute($loader->getFixtures()); }
/** * Napolni podatke iz Fixtures */ public function populateTestAction() { $logger = function ($message) { echo $message . PHP_EOL; }; $em = $this->serviceLocator->get("\\Doctrine\\ORM\\EntityManager"); $config = new Config($this->serviceLocator->get('config')); $loader = new Loader(); $fixtures = isset($config->test_fixtures) ? $config->test_fixtures : []; $fixturename = $this->params('fixturename'); if (!empty($fixturename)) { foreach ($fixtures as $dir) { $loader->loadFromFile($dir . '/' . $fixturename . 'Fixture.php'); /** * če je dependent naj ne izvede nobenega */ if (count($loader->getFixtures()) > 1) { throw new \InvalidArgumentException('Loadanih več fixtur-jev -verjetno zaradi dependencies. Kot parameter možen le fixture brez odvisnosti.'); } } } else { foreach ($fixtures as $dir) { $loader->loadFromDirectory($dir); } } $executor = new ORMExecutor($em); $executor->setLogger($logger); $executor->execute($loader->getFixtures(), true); }
private function loadFixtures(OutputInterface $output, EntityManager $em, array $loaded) { $logger = function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }; $executor = new ORMExecutor($em); $paths = []; foreach ($this->getApplication()->getKernel()->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/Fixture'; } $loader = new DataFixturesLoader($this->getContainer()); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $env = $this->getContainer()->getParameter('kernel.environment'); $output->writeln("Loading <comment>fixtures</comment>..."); $has = array_map(function (Fixture $fixture) { return $fixture->getName(); }, $loaded); $fixtures = array_filter($loader->getFixtures(), function (FixtureInterface $fixture) use($has) { return !in_array(get_class($fixture), $has); }); if (!$fixtures) { $output->writeln(" Could not find any new <comment>fixtures</comment> to load.."); return []; } $executor->setLogger($logger); $executor->execute($fixtures, true); return $fixtures; }
/** * Executes the current command. * * This method is not abstract because you can use this class * as a concrete class. In this case, instead of defining the * execute() method, you set the code to execute by passing * a Closure to the setCode() method. * * @param InputInterface $input An InputInterface instance * @param OutputInterface $output An OutputInterface instance * * @return null|int null or 0 if everything went fine, or an error code * * @throws LogicException When this abstract method is not implemented * * @see setCode() */ protected function execute(InputInterface $input, OutputInterface $output) { /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); $question = new ConfirmationQuestion('All data in User table will be purged before inserting default data. Are you sure you want to continue?', false); if (!$helper->ask($input, $output, $question)) { return; } try { $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/../fixtures'); $fixtures = $loader->getFixtures(); $purger = new ORMPurger($this->em); $executor = new ORMExecutor($this->em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures); $output->writeln('Default users have been successfully loaded!'); return 0; } catch (\Exception $e) { $output->writeLn("That's bad. An Error occurred: <error>{$e->getMessage()}</error>"); return 1; } }
protected function execute(InputInterface $input, OutputInterface $output) { $emName = $input->getOption('em'); $emName = $emName ? $emName : 'default'; $emServiceName = sprintf('doctrine.orm.%s_entity_manager', $emName); $em = $this->container->get($emServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->application->getKernel()->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } } $loader = new DataFixturesLoader($this->container); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); $purger = new ORMPurger($em); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
protected function execute(InputInterface $input, OutputInterface $output) { $emName = $input->getOption('em'); $emName = $emName ? $emName : 'default'; $emServiceName = sprintf('doctrine.orm.%s_entity_manager', $emName); if (!$this->getContainer()->has($emServiceName)) { throw new InvalidArgumentException(sprintf('Could not find an entity manager configured with the name "%s". Check your ' . 'application configuration to configure your Doctrine entity managers.', $emName)); } $em = $this->getContainer()->get($emServiceName); $dirOrFile = $input->getOption('fixtures'); if ($dirOrFile) { $paths = is_array($dirOrFile) ? $dirOrFile : array($dirOrFile); } else { $paths = array(); foreach ($this->getApplication()->getKernel()->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } } $loader = new DataFixturesLoader($this->getContainer()); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
public function testExecuteTransaction() { $em = $this->getMockSqliteEntityManager(); $executor = new ORMExecutor($em); $fixture = $this->getMockFixture($em); $executor->execute(array($fixture), true); }
protected function execute(InputInterface $input, OutputInterface $output) { $em = $this->getEntityManager(); if ($input->isInteractive() && !$input->getOption('append')) { if (!$this->askConfirmation($input, $output, '<question>Careful, database will be purged. Do you want to continue y/N ?</question>', false)) { return; } } $app = $this->getApp(); $path = $app->getApplicationBase($app->getAppNamespace()) . '/DataFixture'; $loader = new DataFixturesLoader(); $loader->loadFromDirectory($path); $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- {$path}")); } foreach ($fixtures as $fixture) { if ($fixture instanceof ContainerAwareInterface) { $fixture->setContainer($this->getContainer()); } } $purger = new ORMPurger($em); if ($input->getOption('truncate-only')) { $purger->setPurgeMode(ORMPurger::PURGE_MODE_TRUNCATE); $purger->purge(); exit(0); } $purger->setPurgeMode($input->getOption('truncate') ? ORMPurger::PURGE_MODE_TRUNCATE : ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->setLogger(function ($message) use($output) { $output->writeln(sprintf(' <comment>></comment> <info>%s</info>', $message)); }); $executor->execute($fixtures, $input->getOption('append')); }
/** * Loads data fixtures (ported from LoadDataFixturesDoctrineCommand class) * * @throws \Codeception\Exception\Module */ public function reloadFixtures() { $container = $this->getModule('Symfony2')->container; $kernel = $this->getModule('Symfony2')->kernel; $doctrine = $container->get('doctrine'); $em = $doctrine->getManager(); $paths = array(); foreach ($kernel->getBundles() as $bundle) { $paths[] = $bundle->getPath() . '/DataFixtures/ORM'; } $loader = new DataFixturesLoader($container); foreach ($paths as $path) { if (is_dir($path)) { $loader->loadFromDirectory($path); } } $fixtures = $loader->getFixtures(); if (!$fixtures) { throw new InvalidArgumentException(sprintf('Could not find any fixtures to load in: %s', "\n\n- " . implode("\n- ", $paths))); } $purger = new ORMPurger($em); $purger->setPurgeMode(ORMPurger::PURGE_MODE_DELETE); $executor = new ORMExecutor($em, $purger); $executor->execute($fixtures, false); }
protected function loadFixtures() { $loader = new Loader(); $loader->addFixture(new DataFixtures()); $purger = new ORMPurger(); $executor = new ORMExecutor($this->app['orm.em'], $purger); $executor->execute($loader->getFixtures()); }
private function loadFixtures() { $loader = new Loader(); $loader->addFixture(new LoadAchievementData()); $purger = new ORMPurger(); $executor = new ORMExecutor($this->manager, $purger); $executor->execute($loader->getFixtures()); }
public function setUp() { $bundle = $this->get('kernel')->getBundle('SyliusFixturesBundle'); $this->loader = new ContainerAwareLoader(static::createClient()->getContainer()); $this->loader->loadFromDirectory($bundle->getPath() . '/DataFixtures/ORM'); $executor = new ORMExecutor($this->get('doctrine.orm.entity_manager'), new ORMPurger()); $executor->execute($this->loader->getFixtures(), true); }
private function loadWholeFixtures() { $loader = new Loader(); $loader->addFixture(new LoadItems()); $purger = new ORMPurger($this->getEntityManager()); $executor = new ORMExecutor($this->getEntityManager(), $purger); $executor->execute($loader->getFixtures()); }
/** * Load the given fixture * * @param \Doctrine\Common\DataFixtures\FixtureInterface $fixture */ protected function loadFixture(FixtureInterface $fixture) { $loader = new Loader(); $loader->addFixture($fixture); $purger = new ORMPurger(); $executor = new ORMExecutor(static::$em, $purger); $executor->execute($loader->getFixtures()); }
protected function loadFixtures() { $loader = new Loader(); $loader->loadFromDirectory(__DIR__ . '/Fixtures'); $purger = new ORMPurger(); $executor = new ORMExecutor($this->entityManager, $purger); $executor->execute($loader->getFixtures()); }
protected function tearDown() { $loader = new Loader(); $loader->loadFromFile('src/PadelTFG/GeneralBundle/DataFixtures/ORM/SponsorTest/SponsorTestRemove.php'); $purger = new ORMPurger(); $executor = new ORMExecutor($this->em, $purger); $executor->execute($loader->getFixtures(), true); $this->em->close(); }
/** @test */ public function file() { $purger = new ORMPurger(); $executor = new ORMExecutor($this->em, $purger); $executor->execute($this->loader->getFixtures()); $user = $this->repository->PostOfTitle('hio'); $this->em->clear(); $this->assertInstanceOf('App\\Entity\\Post', $user); }
/** @test */ public function should_delete_expired_reminders() { $this->executor->execute($this->loader->getFixtures()); $code = ReminderCode::fromNative('code+1'); $email = new Email('*****@*****.**'); $this->repository->deleteExpiredReminders(); $reminder = $this->repository->findReminderByEmailAndCode($email, $code); $this->assertEquals(null, $reminder); }
/** @before */ public function doLoadFixtures() { $loader = new Loader(); foreach ($this->loadFixtures() as $fixture) { $loader->addFixture($fixture); } $purger = new ORMPurger(); $executor = new ORMExecutor($this->em, $purger); $executor->execute($loader->getFixtures()); }
public function testCanLoadFixture() { $loader = $this->getFixtureLoader(); $loader->addFixture(new LoadProductData()); $purger = new ORMPurger(); $executor = new ORMExecutor($this->getEntityManager(), $purger); $executor->execute($loader->getFixtures()); $product = $this->getEntityManager()->find(Product::class, 1); $this->assertSame('test', $product->getName()); }
/** * @param InputInterface $input * @param OutputInterface $output * * @return void */ protected function execute(InputInterface $input, OutputInterface $output) { $loader = new Loader(); $executor = new ORMExecutor($this->em, new ORMPurger()); $loader->loadFromDirectory($this->mainDir); foreach ($this->dirs as $dir) { $loader->loadFromDirectory($dir); } $executor->execute($loader->getFixtures(), true); }
public static function init() { $zf2ModulePaths = [dirname(dirname(__DIR__))]; if ($path = static::findParentPath('vendor')) { $zf2ModulePaths[] = $path; } if ($path = static::findParentPath('module')) { $zf2ModulePaths[] = $path; } if (($path = static::findParentPath('src')) !== $zf2ModulePaths[0]) { $zf2ModulePaths[] = $path; } static::initAutoloader(); $config = (include __DIR__ . '/../config/application.config.php'); $serviceManager = new ServiceManager(new ServiceManagerConfig()); $serviceManager->setService('ApplicationConfig', $config); $serviceManager->get('ModuleManager')->loadModules(); static::$serviceManager = $serviceManager; if (defined("TEST_SUITE") && constant("TEST_SUITE") == 'full') { $entityManager = $serviceManager->get('doctrine.entitymanager.orm_default'); //Validate the schema; $validator = new \Doctrine\ORM\Tools\SchemaValidator($entityManager); $errors = $validator->validateMapping(); if (count($errors) > 0) { foreach ($errors as $entity => $errors) { echo "Error in Entity: '" . $entity . "':\n"; echo implode("\n", $errors); echo "\n"; } die; } //Create the schema $tool = new \Doctrine\ORM\Tools\SchemaTool($entityManager); $mdFactory = $entityManager->getMetadataFactory(); $mdFactory->getAllMetadata(); $tool->dropDatabase(); $tool->createSchema($mdFactory->getAllMetadata()); $loader = new Loader(); $loader->addFixture(new \ProjectTest\Fixture\LoadVersionData()); $loader->addFixture(new \ContactTest\Fixture\LoadContactData()); $loader->addFixture(new \ProjectTest\Fixture\LoadProjectLogoData()); $loader->addFixture(new \ProjectTest\Fixture\LoadDocumentData()); $loader->addFixture(new \ProjectTest\Fixture\LoadFundingStatusData()); $loader->addFixture(new \ProjectTest\Fixture\LoadIdeaDocumentData()); $loader->addFixture(new \ProjectTest\Fixture\LoadIdeaImageData()); $loader->addFixture(new \ProjectTest\Fixture\LoadIdeaDescriptionData()); $loader->addFixture(new \ProjectTest\Fixture\LoadInviteData()); $loader->addFixture(new \ProjectTest\Fixture\LoadProjectRationaleData()); $loader->addFixture(new \GeneralTest\Fixture\LoadWebInfoData()); $loader->addFixture(new \OrganisationTest\Fixture\LoadOrganisationData()); $purger = new ORMPurger(); $executor = new ORMExecutor($entityManager, $purger); $executor->execute($loader->getFixtures()); } }
/** * Загружаем необходимые фикстуры перед выполнением сценария * * @BeforeScenario */ public function beforeScen() { $loader = new Loader(); $loader->addFixture(new \Application\Bundle\UserBundle\DataFixtures\ORM\LoadUserData()); /** @var $em \Doctrine\ORM\EntityManager */ $em = $this->kernel->getContainer()->get('doctrine')->getManager(); $purger = new ORMPurger(); $executor = new ORMExecutor($em, $purger); $executor->purge(); $executor->execute($loader->getFixtures()); }