Esempio n. 1
0
 /**
  * populate all the properties for the object described by the given fixture
  *
  * @param Fixture $fixture
  */
 public function populate(Fixture $fixture)
 {
     $class = $fixture->getClass();
     $name = $fixture->getName();
     $object = $this->objects->get($name);
     foreach ($fixture->getProperties() as $property) {
         $key = $property->getName();
         $val = $property->getValue();
         if (is_array($val) && '{' === key($val)) {
             throw new \RuntimeException('Misformatted string in object ' . $name . ', ' . $key . '\'s value should be quoted if you used yaml');
         }
         $value = $property->requiresUnique() ? $this->generateUnique($fixture, $property) : $this->processor->process($property, $fixture->getSetProperties(), $fixture->getValueForCurrent());
         foreach ($this->setters as $setter) {
             if ($setter->canSet($fixture, $object, $key, $value)) {
                 $setter->set($fixture, $object, $key, $value);
                 $fixture->setPropertyValue($key, $value);
                 break;
             }
         }
         if (!array_key_exists($key, $fixture->getSetProperties())) {
             throw new \UnexpectedValueException('Could not determine how to assign ' . $key . ' to a ' . $class . ' object');
         }
     }
 }
Esempio n. 2
0
 public function testWillParseFlagsOutOfTheName()
 {
     $fixture = new Fixture(self::USER, 'user (local)', array(), null);
     $this->assertEquals('user', $fixture->getName());
 }