/** * * @param FixtureCollectionEvent $event */ public function onPreExecute(FixtureCollectionEvent $event) { $collection = $event->getCollection(); foreach ($collection as $name => $fixture) { foreach ($fixture as $key => $data) { try { $this->executeExpression($data, $collection); } catch (\Exception $e) { throw new RuntimeException($name, $key, sprintf("Expression language error '%s'", $e->getMessage()), null, $e); } } } }
/** * * @param FixtureCollectionEvent $event */ public function onPostExecute(FixtureCollectionEvent $event) { $collection = $event->getCollection(); foreach ($collection as $fixture) { $validationEnabled = $fixture->getProperties()->get('validation_enabled', false); if (!$validationEnabled) { continue; } foreach ($fixture as $data) { $object = $data->getObject(); if (!$object) { continue; } $validationGroup = $fixture->getProperties()->get('validation_group', 'default'); $violationList = $this->validator->validate($object, null, $validationGroup); if (count($violationList) != 0) { throw new ValidationException($fixture->getName(), $data->getKey(), $violationList); } } } }
/** * @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); } } }