Пример #1
0
 /**
  * Initializes context.
  * Every scenario gets it's own context object.
  *
  * @param   array   $parameters     context parameters (set them up through behat.yml)
  */
 public function __construct(array $parameters)
 {
     $config = new \Doctrine\DBAL\Configuration();
     self::$db = \Doctrine\DBAL\DriverManager::getConnection(array('dbname' => $parameters['database']['dbname'], 'user' => $parameters['database']['username'], 'password' => $parameters['database']['password'], 'host' => $parameters['database']['host'], 'driver' => $parameters['database']['driver']));
     $datasource = new \Phabric\Datasource\Doctrine(self::$db, $parameters['Phabric']['entities']);
     $this->phabric = new Phabric($datasource);
     $this->phabric->createEntitiesFromConfig($parameters['Phabric']['entities']);
     $this->phabric->addDataTransformation('UKTOMYSQLDATE', function ($date) {
         $date = \DateTime::createFromFormat('d/m/Y H:i', $date);
         return $date->format('Y-m-d H:i:s');
     });
     $this->phabric->addDataTransformation('ATTENDEELOOKUP', function ($attendeeName, $bus) {
         $ent = $bus->getEntity('attendee');
         $id = $ent->getNamedItemId($attendeeName);
         return $id;
     });
     $this->phabric->addDataTransformation('SESSIONLOOKUP', function ($sessionName, $bus) {
         $ent = $bus->getEntity('session');
         $id = $ent->getNamedItemId($sessionName);
         return $id;
     });
     $this->phabric->addDataTransformation('UPDOWNTOINT', function ($action) {
         $action = strtoupper($action);
         switch ($action) {
             case 'UP':
                 return +1;
                 break;
             case 'DOWN':
                 return -1;
             case 'NO VOTE':
                 return 0;
         }
     });
     $this->phabric->addDataTransformation('SNAKECASE', function ($name) {
         return str_replace(' ', '_', strtolower($name));
     });
 }