Esempio n. 1
0
 public function testIsCustomSetterWillReturnIfTheDefinitionIsACustomSetter()
 {
     $setterDef = new PropertyDefinition('__set', 'setterFunc');
     $normalDef = new PropertyDefinition('username', '<username()>');
     $this->assertTrue($setterDef->isCustomSetter());
     $this->assertFalse($normalDef->isCustomSetter());
 }
Esempio n. 2
0
 /**
  * ensures that the property generated for the given fixture is a unique property
  *
  * @param  Fixture            $fixture
  * @param  PropertyDefinition $property
  * @return mixed
  */
 protected function generateUnique(Fixture $fixture, PropertyDefinition $property)
 {
     $class = $fixture->getClass();
     $key = $property->getName();
     $i = $uniqueTriesLimit = 128;
     do {
         // process values
         $value = $this->processor->process($property, $fixture->getSetProperties(), $fixture->getValueForCurrent());
         if (is_object($value)) {
             $valHash = spl_object_hash($value);
         } elseif (is_array($value)) {
             $valHash = hash('md4', serialize($value));
         } else {
             $valHash = $value;
         }
     } while (--$i > 0 && isset($this->uniqueValues[$class . $key][$valHash]));
     if (isset($this->uniqueValues[$class . $key][$valHash])) {
         throw new \RuntimeException("Couldn't generate random unique value for {$class}: {$key} in {$uniqueTriesLimit} tries.");
     }
     $this->uniqueValues[$class . $key][$valHash] = true;
     return $value;
 }