Example #1
0
 /**
  * @covers CSanquer\FakeryGenerator\Model\Config::getClassName
  * @covers CSanquer\FakeryGenerator\Model\Config::setClassName
  * @covers CSanquer\FakeryGenerator\Model\Config::getClassNameLastPart
  */
 public function testGetSetClassName()
 {
     $this->assertNull($this->config->getClassName());
     $this->assertInstanceOf('\\CSanquer\\FakeryGenerator\\Model\\Config', $this->config->setClassName('Entity\\User-'));
     $this->assertEquals('Entity\\User', $this->config->getClassName());
     $this->assertEquals('Entity_User', $this->config->getClassName(true));
     $this->assertEquals('User', $this->config->getClassNameLastPart());
 }
 public function providerDump()
 {
     $config1 = new Config();
     $config1->setMaxTimestamp('2014-01-01T12:30:45+0100');
     $config1->setClassName('Entity\\User');
     $config1->setFakeNumber(10);
     $config1->setFormats(['php', 'json', 'xml', 'yaml', 'csv', 'sql', 'excel', 'perl', 'ruby', 'python']);
     $config1->setSeed(51);
     $config1->setLocale('fr_FR');
     $config1->setVariables([new Variable('firstname', 'firstName', [], false, false), new Variable('lastname', 'lastName', [], false, false), new Variable('birthday', 'dateTimeThisCentury', ['d/m/Y'], false, 0.5), new Variable('email', 'safeEmail', [], true, false)]);
     $config1->setColumns([new Column('person', null, null, [new Column('name', null, null, [new Column('firstname', '%firstname%', 'capitalize'), new Column('lastname', '%lastname%', 'capitalize')]), new Column('birthday', '%birthday%')]), new Column('email', '%email%')]);
     return [[$config1, true, 'all', "Dumping Configuration as JSON ...\nDumping Configuration as XML ...\nInitializing files ...\nFormats : php, json, xml, yaml, csv, sql, excel, perl, ruby, python\nGenerating 10 rows ...\n\r  1/10 [==>-------------------------]  10%\r  2/10 [=====>----------------------]  20%\r  3/10 [========>-------------------]  30%\r  4/10 [===========>----------------]  40%\r  5/10 [==============>-------------]  50%\r  6/10 [================>-----------]  60%\r  7/10 [===================>--------]  70%\r  8/10 [======================>-----]  80%\r  9/10 [=========================>--]  90%\r 10/10 [============================] 100%\nFinalizing files ...\n\r  1/10 [==>-------------------------]  10%\r  2/10 [=====>----------------------]  20%\r  3/10 [========>-------------------]  30%\r  4/10 [===========>----------------]  40%\r  5/10 [==============>-------------]  50%\r  6/10 [================>-----------]  60%\r  7/10 [===================>--------]  70%\r  8/10 [======================>-----]  80%\r  9/10 [=========================>--]  90%\r 10/10 [============================] 100%\nCompressing files into zip ...\n", ['zip' => 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}\\.zip'], ['fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.csv', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.json', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.php', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.pl', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.py', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.rb', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.sql', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.xlsx', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.xml', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.yml', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User_fakery_generator_config_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}.json', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User_fakery_generator_config_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}.xml']]];
 }
 public function providerDump()
 {
     $config1 = new Config();
     $config1->setMaxTimestamp('2014-01-01T12:30:45+0100');
     $config1->setClassName('Entity\\User');
     $config1->setFakeNumber(10);
     $config1->setFormats(['php', 'json', 'xml', 'yaml', 'csv', 'sql', 'excel', 'perl', 'ruby', 'python']);
     $config1->setSeed(51);
     $config1->setLocale('fr_FR');
     $config1->setVariables([new Variable('firstname', 'firstName', [], false, false), new Variable('lastname', 'lastName', [], false, false), new Variable('birthday', 'dateTimeThisCentury', ['d/m/Y'], false, 0.5), new Variable('email', 'safeEmail', [], true, false)]);
     $config1->setColumns([new Column('person', null, null, [new Column('name', null, null, [new Column('firstname', '%firstname%', 'capitalize'), new Column('lastname', '%lastname%', 'capitalize')]), new Column('birthday', '%birthday%')]), new Column('email', '%email%')]);
     return [[$config1, true, 'all', ['zip' => 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}\\.zip'], ['fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.csv', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.json', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.php', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.pl', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.py', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.rb', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.sql', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.xlsx', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.xml', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User.yml', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User_fakery_generator_config_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}.json', 'fakery_User_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}/Entity_User_fakery_generator_config_\\d{4}-\\d{2}-\\d{2}_\\d{2}-\\d{2}-\\d{2}.xml']]];
 }
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $app = $this->getApplication()->getSilex();
     $outputDir = realpath(is_dir($input->getArgument('output-dir')) ? $input->getArgument('output-dir') : '.');
     $format = $input->getOption('format');
     if (!in_array($format, array('json', 'xml'))) {
         throw new \InvalidArgumentException('The format ' . $format . ' is not allowed.');
     }
     $config = new Config();
     $config->setClassName('Entity\\User')->setFakeNumber(100)->setFormats(array_keys(DumpManager::getAvailableFormats()))->setLocale('en_US')->setSeed(17846134)->setCsvDialect(Dialect::createExcelDialect())->setVariables([new Variable('firstname', 'firstName'), new Variable('lastname', 'lastName'), new Variable('emailDomain', 'freeEmailDomain'), new Variable('birthday', 'dateTimeBetween', ['Y-m-d', '1970-01-01', '2014-01-01']), new Variable('phonehome', 'phoneNumber'), new Variable('phonework', 'phoneNumber'), new Variable('phonemobile', 'phoneNumber'), new Variable('street1', 'streetAddress'), new Variable('city1', 'city'), new Variable('postalcode1', 'postcode'), new Variable('country1', 'country'), new Variable('street2', 'streetAddress'), new Variable('city2', 'city'), new Variable('postalcode2', 'postcode'), new Variable('country2', 'country')])->setColumns([new Column('firstname', '%firstname%', 'capitalize'), new Column('lastname', '%lastname%', 'capitalize'), new Column('email', '%firstname%.%lastname%@%emailDomain%', 'lowercase'), new Column('birthday', '%birthday%'), new Column('address', null, null, [new Column('home', null, null, [new Column('street', '%street1%', 'capitalize'), new Column('city', '%city1%', 'capitalize'), new Column('postalcode', '%postalcode1%'), new Column('country', '%country1%', 'capitalize')]), new Column('work', null, null, [new Column('street', '%street2%', 'capitalize'), new Column('city', '%city2%', 'capitalize'), new Column('postalcode', '%postalcode2%'), new Column('country', '%country2%', 'capitalize')])]), new Column('phone', null, null, [new Column('home', '%phonehome%'), new Column('mobile', '%phonemobile%')])]);
     $serializer = $app['fakery.config_serializer'];
     $configFile = $serializer->dump($config, $outputDir, $format);
     $output->writeln('Example Config file dumped to <info>' . $configFile) . '</info>';
 }
 public function providerDump()
 {
     $config1 = new Config();
     $config1->setClassName('Entity\\User')->setFakeNumber(3)->setFormats(['ruby'])->setLocale('en_US')->setSeed(17846134)->setCsvDialect(Dialect::createUnixDialect())->setVariables([new Variable('firstname', 'firstName'), new Variable('lastname', 'lastName'), new Variable('emailDomain', 'freeEmailDomain'), new Variable('birthday', 'dateTimeThisCentury', ['Y-m-d'])])->setColumns([new Column('person', null, null, [new Column('name', null, null, [new Column('firstname', '%firstname%', 'capitalize'), new Column('lastname', '%lastname%', 'capitalize')]), new Column('email', '%firstname%.%lastname%@%emailDomain%', 'lowercase')]), new Column('birthday', '%birthday%')]);
     return [[$config1, true, [['person' => ['name' => ['firstname' => 'Adolph', 'lastname' => 'McCullough'], 'email' => '*****@*****.**'], 'birthday' => '1994-05-30'], ['person' => ['name' => ['firstname' => 'Sebastian', 'lastname' => 'Harvey'], 'email' => '*****@*****.**'], 'birthday' => '1927-10-02'], ['person' => ['name' => ['firstname' => 'Norris', 'lastname' => 'Douglas'], 'email' => '*****@*****.**'], 'birthday' => '1994-08-12']], 'RubyDumper/expected/Entity_User.rb']];
 }
 public function providerLoad()
 {
     $config1 = new Config();
     $config1->setMaxTimestamp('2014-01-01T12:30:45+0100');
     $config1->setClassName('Entity\\User');
     $config1->setFakeNumber(500);
     $config1->setFormats(['php', 'json', 'xml']);
     $config1->setSeed(51);
     $config1->setLocale('fr_FR');
     $config1->setVariables([new Variable('firstname', 'firstName', [], false, false), new Variable('lastname', 'lastName', [], false, false), new Variable('birthday', 'dateTimeThisCentury', ['d/m/Y'], false, 0.5), new Variable('email', 'safeEmail', [], true, false)]);
     $config1->setColumns([new Column('person', null, null, [new Column('name', null, null, [new Column('firstname', '%firstname%', 'capitalize'), new Column('lastname', '%lastname%', 'capitalize')]), new Column('birthday', '%birthday%')]), new Column('email', '%email%')]);
     return [['Entity_User_fakery_generator_config.json', $config1], ['Entity_User_fakery_generator_config.xml', $config1]];
 }