コード例 #1
0
 /**
  * @param object $object
  * @param FixtureData $fixtureData
  * @throws \DavidBadura\Fixtures\Util\ObjectAccess\ObjectAccessException
  */
 public function finalizeObject($object, FixtureData $fixtureData)
 {
     $properties = $fixtureData->getProperties();
     $data = $fixtureData->getData();
     $constructor = $properties->get('constructor', array());
     $args = array();
     if (!empty($constructor)) {
         foreach ($constructor as $key) {
             $key = substr($key, 0, 1) == '?' ? substr($key, 1) : $key;
             $args[$key] = true;
         }
     }
     $objectAccess = new ObjectAccess($object);
     foreach ($data as $property => $value) {
         if (!isset($args[$property])) {
             if (is_string($value)) {
                 $value = str_replace('{unique_id}', uniqid(), $value);
             }
             $objectAccess->writeProperty($property, $value);
         }
     }
 }
コード例 #2
0
 /**
  * @param FixtureCollectionEvent $event
  * @throws \DavidBadura\Fixtures\Util\ObjectAccess\ObjectAccessException
  */
 public function onPostExecute(FixtureCollectionEvent $event)
 {
     $fixtures = $event->getCollection();
     foreach ($fixtures as $fixture) {
         $properties = $fixture->getProperties();
         if (!isset($properties['security']) || $properties['security'] == false) {
             continue;
         }
         $passwordField = isset($properties['security']['password']) ? $properties['security']['password'] : '******';
         $saltField = isset($properties['security']['salt']) ? $properties['security']['salt'] : 'salt';
         foreach ($fixture as $data) {
             $object = $data->getObject();
             if (!$object) {
                 continue;
             }
             $encoder = $this->factory->getEncoder($object);
             $access = new ObjectAccess($object);
             $password = $encoder->encodePassword($access->readProperty($passwordField), $access->readProperty($saltField));
             $access->writeProperty($passwordField, $password);
         }
     }
 }
コード例 #3
0
 public function testInvalidSetDateTimeMethod()
 {
     $this->setExpectedException('DavidBadura\\Fixtures\\Util\\ObjectAccess\\ObjectAccessException');
     $object = new AccessObject();
     $access = new ObjectAccess($object);
     $access->writeProperty('dateTimeMethod', 'not valid');
     $this->assertInstanceOf('\\DateTime', $object->setDateTimeMethod);
 }