示例#1
0
 public function testShouldCreateProviderFromArray()
 {
     $spec = json_decode('{"title" : {
             "provider" : "en_US/Text::realText",
             "length" : 100
         }}', true);
     $faker = FakerFactory::createFromSpec($spec);
     $this->assertInstanceOf('\\Faker\\Generator', $faker);
     $this->assertInstanceOf('\\Vegas\\Tool\\Faker\\ProviderProxy', ProviderProxyMap::get('title'));
     $this->assertNull(ProviderProxyMap::get('fake'));
     $this->assertEquals('Faker\\Provider\\en_US\\Text', ProviderProxyMap::get('title')->getProviderClassName());
     $this->assertInstanceOf('\\Faker\\Provider\\en_US\\Text', ProviderProxyMap::get('title')->instantiateProvider($faker));
     $this->assertInternalType('string', ProviderProxyMap::get('title')->invoke($faker));
     $this->assertLessThan(100, strlen(ProviderProxyMap::get('title')->invoke($faker)));
 }
示例#2
0
 /**
  * Generates fake data
  *
  * @throws Exception\MissingDestinationException
  * @throws Exception\MissingAdapterTypeException
  * @throws Exception\MissingAdapterException
  */
 public function generate()
 {
     //fetches specification
     $spec = $this->fetchDataSpec($this->specFilePath);
     if (!$this->adapterName) {
         throw new MissingAdapterException();
     }
     if (!$this->adapterType) {
         throw new MissingAdapterTypeException();
     }
     if (!$this->destination) {
         throw new MissingDestinationException();
     }
     //prepares output adapter
     $outputAdapter = $this->obtainOutputAdapter($this->adapterName, $this->adapterType);
     $outputAdapter->setDestination($this->destination);
     $outputAdapter->init();
     //prepares fake data generator
     $faker = FakerFactory::createFromSpec($spec);
     foreach ($this->customProviders as $provider) {
         $reflectionClass = new \ReflectionClass($provider);
         $faker->addProvider($reflectionClass->newInstance($faker));
     }
     //generates data`
     for ($i = 0; $i < $this->count; $i++) {
         $data = [];
         foreach ($spec as $key => $providerConfig) {
             $providerProxy = ProviderProxyMap::get($key);
             $data[$key] = $providerProxy->invoke($faker);
         }
         $outputAdapter->store($data);
     }
     //release, clean up...
     $outputAdapter->finalize();
 }