public function testIsCustomSetterWillReturnIfTheDefinitionIsACustomSetter() { $setterDef = new PropertyDefinition('__set', 'setterFunc'); $normalDef = new PropertyDefinition('username', '<username()>'); $this->assertTrue($setterDef->isCustomSetter()); $this->assertFalse($normalDef->isCustomSetter()); }
/** * 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; }