예제 #1
0
 public function testGenerateValueUnique()
 {
     $faker = \Faker\Factory::create('en_US');
     $values = [];
     $variables = [];
     $name = 'foo';
     $this->variable->setName($name);
     $this->variable->setMethod('randomDigit');
     $this->variable->setMethodArguments([]);
     $this->variable->setOptional(null);
     $this->variable->setUnique(true);
     $rawValues = [];
     for ($i = 0; $i < 10; $i++) {
         $this->variable->generateValue($faker, $values, $variables);
         $this->assertArrayHasKey($name, $values);
         $this->assertArrayHasKey('raw', $values[$name]);
         $this->assertArrayHasKey('flat', $values[$name]);
         $rawValues[] = $values[$name]['raw'];
         unset($values[$name]);
     }
     sort($rawValues);
     $this->assertEquals([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], $rawValues);
 }
예제 #2
0
 /**
  * @covers CSanquer\FakeryGenerator\Model\Config::updateVariableMaxTimestamp
  */
 public function testUpdateVariableMaxTimestamp()
 {
     $variable = new Variable('birthday', 'date', [], false, false, '2000-01-01 08:00:00');
     $this->assertEquals(new \DateTime('2000-01-01 08:00:00'), $variable->getMaxTimestamp());
     $this->config->addVariable($variable);
     $this->config->setMaxTimestamp('2014-06-30 00:00:00');
     $this->config->updateVariableMaxTimestamp();
     $this->assertEquals(new \DateTime('2014-06-30 00:00:00'), $variable->getMaxTimestamp());
 }
예제 #3
0
 /**
  * @param  Variable $variable
  * @return Config
  */
 public function addVariable(Variable $variable)
 {
     $name = $variable->getName();
     if (empty($name)) {
         throw new \InvalidArgumentException('The variable must have a name.');
     }
     $this->variables[$name] = $variable;
     $this->variables[$name]->setMaxTimestamp($this->maxTimestamp);
     if ($this->fakerConfig) {
         $this->variables[$name]->setFakerConfig($this->fakerConfig);
     }
     return $this;
 }